Zend Framework per-Модул во местото на живеење
Јас направивме трае на овој пост која бара помалку конфигурација, ве молиме видете Модул Врз основа Распоред - Zend Framework .
Кога се користи рамка Zend со модули, неговата очигледна дека ако сте водење разни (суб-) сајтови надвор од иста апликација која не мора да сакаат исти распоред скрипти за секој дел. Решив да одам со следниве сајт структура:
/ Апликација / Контролери ... / Модели / Модули / Default / Контролери / Распоред / Скрипти / Пати / Скрипти / AnotherModule ... / Скрипти
Проблемот беше поставување на изгледот скрипти на на-модул основа. Одговорот дојде преку користење на Акционен помошник. Поставување на распоред на на-модул основа се состои од три чекори:
- Application.ini (или сличен конфигурација подесување):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ модули / admin / распоред / скрипти" default.resources.layout.layoutPath = APPLICATION_PATH "/ модули / default / распоред / скрипти" member.resources.layout.layoutPath = APPLICATION_PATH "/ модули / член / распоред / скрипти "affiliate.resources.layout.layoutPath = APPLICATION_PATH" / модули / партнер / распоред / скрипти " - Направете ја вашата акција Helper:
<? PHP / ** * Поставување на изгледот патот на на-модул основа * * @ Author Лојд Watkin <lloyd@evilprofessor.co.uk> * @ Бидејќи 2010/1/1 * / класа Pro_Controller_Action_Helper_SetLayoutPath се протега Zend_Controller_Action_Helper_Abstract { / ** * Колекции распоред патот врз основа на модул * / јавна функција preDispatch () { $ Модул = $ ова-> getRequest () -> getModuleName (); if ($ подигање = $ ова-> getActionController () -> GetInvokeArg ("подигање")) { $ Config = $ подигање-> getOptions (); ако (isset ($ config [$ модул] ['ресурси'] ['распоред'] ['layoutPath'])) { $ LayoutPath = $ Config [$ модул] ['ресурси'] ['распоред'] ['layoutPath']; $ Ова-> getActionController () -> GetHelper ('распоред') -> SetLayoutPath ($ layoutPath); } } } }
- И на крај boostrap акцијата помошник:
... / ** * Поставува распоред скрипти на на-модул основа * / заштитени функција _initLayoutHelper () { $ Ова-> подигање ('frontController'); $ Распоред = Zend_Controller_Action_HelperBroker :: addHelper ( нови Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































