CakePHP: Открытый PHP-фреймворк для веб-разработки
CakePHP
CakePHP – быстрый PHP фреймворк с открытым исходным кодом, использующий MVC. Разработка веб-приложений по принципу "соглашение вместо конфигурации". MIT License.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Открытый веб-фреймворк на PHP
Open source web framework in PHP
CakePHP — это веб-фреймворк с открытым исходным кодом. Он следует архитектуре «модель — представление — контроллер» (MVC) и написан на PHP, вдохновлён концепциями Ruby on Rails и распространяется под лицензией MIT. CakePHP использует известные концепции разработки программного обеспечения и шаблоны проектирования, такие как принцип «соглашение важнее конфигурации», MVC, активная запись, отображение связанных данных и фронтальный контроллер.
CakePHP is an open source web framework. It follows the model–view–controller (MVC) approach and is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License. CakePHP uses well known software engineering concepts and software design patterns, such as convention over configuration, model–view–controller, active record, association data mapping, and front controller.
История
CakePHP начал свое существование в апреле 2005 года, когда польский программист Михал Татаринович создал минимальную версию фреймворка для быстрой разработки приложений на PHP, назвав его Cake. Он опубликовал этот фреймворк под лицензией Public Domain, которая вскоре была заменена на лицензию MIT, и открыл его для онлайн-сообщества разработчиков. В декабре 2005 года Л. Мастерс и Г. Дж. Вудворт основали Cake Software Foundation для поддержки и развития CakePHP. В октябре 2009 года менеджер проекта Вудворт и разработчик Н. Абеле покинули проект, чтобы сосредоточиться на собственных разработках, включая веб-фреймворк Lithium (ранее бывший частью проекта CakePHP). Оставшаяся команда разработчиков продолжила следовать ранее определенному плану развития.
CakePHP started in April 2005, when the Polish programmer Michal Tatarynowicz wrote a minimal version of a rapid application development framework in PHP, dubbing it Cake. He published the framework under the Public Domain license which was soon changed to MIT License and opened it up to the online community of developers. In December 2005, L. Masters and G. J. Woodworth founded the Cake Software Foundation to promote development related to CakePHP. In October 2009, project manager Woodworth and developer N. Abele resigned from the project to focus on their own projects, including the Lithium web framework (previously part of the CakePHP project). The remaining development team continued to focus on the original roadmap that was previously defined.
Особенности
Плагины позволяют разработчикам упаковывать комбинации контроллеров, моделей, представлений и других классов для повторного использования в нескольких приложениях и другими разработчиками. С CakePHP 3 появилась возможность устанавливать плагины с помощью Composer. CakePHP ORM (объектно-реляционное отображение) – это продвинутый PHP-гибрид активного шаблона записи и шаблона отображения данных, заимствующий ключевые концепции из обоих. CakePHP ORM использует два основных типа объектов: класс таблицы, представляющий таблицы базы данных, и классы сущностей, представляющие отдельные строки таблицы. Конструктор запросов был представлен в CakePHP 3 как дополнение к новой ORM. Он предоставляет набор классов и методов для программного построения SQL-запросов вместо их ручного написания. ORM активно использует конструктор запросов. Маршрутизация и обратная маршрутизация. Маршрутизатор CakePHP обеспечивает сложную маршрутизацию HTTP-приложений, направляя входящие запросы в соответствующий контроллер и действие. Обратная маршрутизация создает связь между маршрутами и ссылками, гарантируя, что ссылки всегда генерируются с правильным универсальным указателем ресурса. View Cells предоставляют небольшие мини-контроллеры, которые могут вызывать логику представления и отображать шаблоны. Они идеально подходят для создания небольших, многократно используемых компонентов страниц. Миграции обеспечивают контроль версий для схем баз данных, позволяя синхронизировать изменения в логике приложения и соответствующие изменения базы данных. Это значительно упрощает как развертывание приложений CakePHP, так и разработку в командах с несколькими разработчиками. Инструмент миграции CakePHP основан на проекте Phinx. Автоматическая постраничная навигация позволяет разработчикам легко разбивать на страницы наборы результатов, генерируемые ORM или конструктором запросов. Форм-билдер и валидатор позволяют программно генерировать формы, связанные с уровнем модели как для типов данных, так и для валидации. CakePHP Bake – это инструмент для автоматической генерации кода приложений, каркасов и типового кода. Он использует существующую схему базы данных для определения правильных связей и типов данных, а затем генерирует полный набор контроллеров, моделей и шаблонов представлений. Он может генерировать базовое CRUD-приложение без написания кода.
Plugins allow developers to package combinations of controllers, models, views and other classes for reuse in multiple applications and by other developers. Since CakePHP 3 it has been possible to install plugins using Composer. CakePHP ORM (object relational mapping) is an advanced PHP hybrid of the active record pattern and the data mapper pattern, borrowing core concepts from both. The CakePHP ORM uses two primary object types, the table class representing database tables, and entity classes representing individual table rows. Query builder was introduced in CakePHP 3 as a companion to the new ORM. The query builder provides a set of classes and methods for programmatically building SQL queries instead of writing them by hand. The ORM makes extensive use of the query builder. Routing and reverse routing. The CakePHP router allows for complex HTTP application routing, routing incoming requests to the correct controller and action. Reverse routing creates a relationship between routes and links, ensuring that links are always generated with the correct uniform resource locator. View Cells provide small, mini controllers that can invoke view logic and render templates. These are ideal for creating small, reusable page components. Migrations provide version control for database schemas. These make it possible to ensure that changes to application logic and corresponding database changes are kept synchronised. This greatly simplifies both CakePHP application deployment, but also development in multi developer teams. The CakePHP migration tool is based on the Phinx project. Automatic pagination to make it easy for developers to paginate result sets generated by the ORM or Query Builder. Form builder and validator allows for the programmatic generation of forms that are tied to the model layer for both data types and validation. CakePHP Bake is a tool for automatically generating application, skeletons and boilerplate code. It uses a pre existing database schema to infer the correct data relations and data types and using that to generate a full set of controllers, model object and view templates. It can generate a basic CRUD application with zero coding.