Како продолжување на мојот претходен пост на по модул базирани распоред поставувања за Zend Framework , јас сум ажурирани го кодот за да бараат помалку конфигурација тогаш пред (не дека тоа бара повеќе од неколку линии во вашата апликација, конфигурација!).
Продолжи со читање "Zend Framework по модул Распоред Подесувања - Следете Up '»
Статии , компјутер , PHP , Веб Програмирање , Zend Framework |
акција , контролер , рамка , помошник , распоред , модул , PHP , Zend , Zend Framework
Јас направивме трае на овој пост која бара помалку конфигурација, ве молиме видете Модул Врз основа Распоред - 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 ());
}
...