Введение

Открытый веб-фреймворк на PHP

CakePHP — это веб-фреймворк с открытым исходным кодом. Он следует архитектуре «модель — представление — контроллер» (MVC) и написан на PHP, вдохновлён концепциями Ruby on Rails и распространяется под лицензией MIT. CakePHP использует известные концепции разработки программного обеспечения и шаблоны проектирования, такие как принцип «соглашение важнее конфигурации», MVC, активная запись, отображение связанных данных и фронтальный контроллер.

История

CakePHP начал свое существование в апреле 2005 года, когда польский программист Михал Татаринович создал минимальную версию фреймворка для быстрой разработки приложений на PHP, назвав его Cake. Он опубликовал этот фреймворк под лицензией Public Domain, которая вскоре была заменена на лицензию MIT, и открыл его для онлайн-сообщества разработчиков. В декабре 2005 года Л. Мастерс и Г. Дж. Вудворт основали Cake Software Foundation для поддержки и развития CakePHP. В октябре 2009 года менеджер проекта Вудворт и разработчик Н. Абеле покинули проект, чтобы сосредоточиться на собственных разработках, включая веб-фреймворк Lithium (ранее бывший частью проекта CakePHP). Оставшаяся команда разработчиков продолжила следовать ранее определенному плану развития.

Особенности

Плагины позволяют разработчикам упаковывать комбинации контроллеров, моделей, представлений и других классов для повторного использования в нескольких приложениях и другими разработчиками. С CakePHP 3 появилась возможность устанавливать плагины с помощью Composer. CakePHP ORM (объектно-реляционное отображение) – это продвинутый PHP-гибрид активного шаблона записи и шаблона отображения данных, заимствующий ключевые концепции из обоих. CakePHP ORM использует два основных типа объектов: класс таблицы, представляющий таблицы базы данных, и классы сущностей, представляющие отдельные строки таблицы. Конструктор запросов был представлен в CakePHP 3 как дополнение к новой ORM. Он предоставляет набор классов и методов для программного построения SQL-запросов вместо их ручного написания. ORM активно использует конструктор запросов. Маршрутизация и обратная маршрутизация. Маршрутизатор CakePHP обеспечивает сложную маршрутизацию HTTP-приложений, направляя входящие запросы в соответствующий контроллер и действие. Обратная маршрутизация создает связь между маршрутами и ссылками, гарантируя, что ссылки всегда генерируются с правильным универсальным указателем ресурса. View Cells предоставляют небольшие мини-контроллеры, которые могут вызывать логику представления и отображать шаблоны. Они идеально подходят для создания небольших, многократно используемых компонентов страниц. Миграции обеспечивают контроль версий для схем баз данных, позволяя синхронизировать изменения в логике приложения и соответствующие изменения базы данных. Это значительно упрощает как развертывание приложений CakePHP, так и разработку в командах с несколькими разработчиками. Инструмент миграции CakePHP основан на проекте Phinx. Автоматическая постраничная навигация позволяет разработчикам легко разбивать на страницы наборы результатов, генерируемые ORM или конструктором запросов. Форм-билдер и валидатор позволяют программно генерировать формы, связанные с уровнем модели как для типов данных, так и для валидации. CakePHP Bake – это инструмент для автоматической генерации кода приложений, каркасов и типового кода. Он использует существующую схему базы данных для определения правильных связей и типов данных, а затем генерирует полный набор контроллеров, моделей и шаблонов представлений. Он может генерировать базовое CRUD-приложение без написания кода.