В последнее время мне все больше и плотнее приходится работать с фреймворком cakePHP. И с каждым разом он не перестает удивлять своей замечательной подборкой модулей и возможностью расширений.
В этот раз меня привлекло использование плагинов, которые достаточно универсальны и просты в написании и использовании. И что самое главное - плагин может использоваться многократно в разных проектах. Можно сказать что это и есть удобство хранения и переноса ваших модулей.
Использовать плагины можно в различных комбинациях. Плагин - это как мини-приложение в вашем проекте. Он связан с ним только конфигурационными файлами - соединение с БД database.ctp и настройка роутов routers.ctp, которые при желании можно же конечно переопределить в самом плагине .. ;) Вот примерно такая типовая структура будет у всех плагинов, за исключением ненужных модулей.
В состав пакета плагина также входить могут и контроллеры, и компоненты, хелперы, представления и другие элементы. Все выше перечисленные элементы будут храниться в этой папке, папке плагина, и обязательно иметь два дополнительных файла, расширяющих возможности использования общих строк кода для контроллеров и моделей, соответственно AppController и AppModel.
Очень важный момент - это как назвать файлы. Для структуры плагина определены четкие правила в именовании файлов для предотвращения возникновения конфликтных ситуаций в приложении.
Для того, чтобы подключить плагин в свое приложение, его достаточно положить в специальную папку /app/plugins. CakePHP автоматически просматривая папки при загрузке подключит ваш плагин к приложению. Тогда expample и будет названием вашего плагина. Желательно, для вашего же удобства(!) придерживаться этого названия при создании файлов и программного кода в них, и даже таблиц, если таковые Вы собираетесь использовать.
Для того чтобы определять настройки, которые вы обычно делаете в app_controller.php и app_model.php в плагине используються специальные файлы example_app_controller.php и example_app_model.php
class ExampleAppController extends AppController { /* * необходимый код, что для контроллера плагина */ }
class ExampleApModel extends AppModel { /* * необходимый код, что для модели плагина */ }
Чтобы обратиться к плагину, достаточно пройти по ссылке вида
/* * определение ссылки методом cakePHP */ echo $html->link('Plugin Example', array( 'plugin' => 'example', 'controller' => 'manage_ example', 'action' => 'display', ));
Пока нет коментариев. Будьте первым!