Zend Framework для каждого модуля на основе параметров
Я создал последующих на этот пост, который требует меньше конфигурации, см. модуль на основе макета - Zend Framework .
При использовании Zend Framework, при помощи модуля, его очевидным, что если вы работаете с различными (суб-) сайты с одного приложения не обязательно хотят того же, сценарии раскладка для каждой части. Я решил пойти со следующей структурой сайта:
/ Применение / Контроллеры ... / Модели / Модулей / По умолчанию / Контроллеры / Расположение / Скрипты / Просмотров / Скрипты / AnotherModule ... / Скрипты
Проблема создания макета скрипты для каждого модуля. Ответ пришел через использование действий помощника. Настройка раскладки на каждого модуля включает в себя три этапа:
- Application.ini (или аналогичные настройки конфигурации):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ модули / администратор / макеты / скрипты" default.resources.layout.layoutPath = APPLICATION_PATH "/ модули / по умолчанию / макеты / скрипты" member.resources.layout.layoutPath = APPLICATION_PATH "/ модулей / участников / макеты / скрипты" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ модули / филиала / макеты / скрипты"
- Создайте действия Helper:
<? PHP / ** * Устанавливает расположение на пути каждого модуля * * @ Автор Ллойд Уоткин <lloyd@evilprofessor.co.uk> * @ С 2010-01-01 * / Класс Pro_Controller_Action_Helper_SetLayoutPath расширяет Zend_Controller_Action_Helper_Abstract { / ** * Наборы расположение путь, основанный на модуле * / общественных preDispatch функции () { Модуль $ = $ это-> GetRequest () -> getModuleName (); если ($ загрузки = $ это-> getActionController () -> GetInvokeArg ('загрузки')) { $ = $ Конфигурации загрузки-> getOptions (); если (Исеть ($ CONFIG [$ модуль] ['ресурсы'] ['схема'] ['layoutPath'])) { $ = LayoutPath $ CONFIG [$ модуль] ['ресурсы'] ['схема'] ['layoutPath']; $ Это-> getActionController () -> GetHelper («расположение») -> SetLayoutPath ($ layoutPath); } } } }
- И, наконец boostrap помощник действия:
... / ** * Устанавливает расположение скриптов на каждого модуля * / защищенная функция _initLayoutHelper () { $ Это-> загрузки ('FrontController'); $ = Расположение Zend_Controller_Action_HelperBroker :: addHelper ( новый Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































