Zend Рамковниот по модул распределба Settings - се надоврзе
Како надоврзување на мојот предходен пост по модул врз изгледот поставувања за Zend рамка , јас сум измена на кодот за да бараат помалку конфигурација тогаш пред (не дека тоа е потребно повеќе од неколку линии во вашата апликација, конфигурација!).
Повторно сме да го користат на Zend контролор акција Helper го повикува од подигање на следниов начин:
/ **
* Поставува распоред скрипти на на-модул основа
* /
функција заштитена _initLayoutHelper ()
{
$ Ова-> bootstrap ('frontController');
$ Распоред = Zend_Controller_Action_HelperBroker:: addHelper (
нови Pro_Controller_Action_Helper_SetLayoutPath (APPLICATION_PATH));
}
Скоро иста како пред освен тоа време се поминува постојано APPLICATION_PATH во конструкторот како нашата база на пат.
Следна контролорот акција помошник себе сега изгледа како што следува:
/ ** * Поставување на изгледот патот на на-модул основа * * @ Author Лојд Watkin * @ Бидејќи 16/02/2010 * @ Пакет Про * @ Subpackage Controller_Action_Helper * / / ** * Поставување на изгледот патот на на-модул основа * * @ Author Лојд Watkin * @ Бидејќи 16/02/2010 * @ Пакет Про * @ Subpackage Controller_Action_Helper * / класа Pro_Controller_Action_Helper_SetLayoutPath протега Zend_Controller_Action_Helper_Abstract { / ** * База патот * * @ Var низа * / заштитени $ _path; / ** * Конструирај * * @ $ String параметри патот * / јавна функција __construct ($ PATH) { $ Ова-> setBasePath ($ патека); } / ** * Поставете база на патот * * @ $ String параметри патот * / јавна функција setBasePath ($ PATH) { ако (is_string ($ PATH)! | | празен ($ PATH)) { фрли нова Исклучок ('исклучок стринг за базната патека "); } $ Ова-> _path = $ PATH; } / ** * Земете ја базната патека * * @ Врати стринг * / функција заштитена _getBasePath () { ако (is_null ($ ова-> _path)) { if (! дефинирани ('APPLICATION_PATH')) { фрли нова Исклучок ('База патека не може да се утврди'); } $ Ова-> _path = APPLICATION_PATH; } враќање $ ова-> _path; } / ** * Поставува распоред пат врз основа на модулот * / јавна функција preDispatch () { $ Модул = preg_replace ( "/ [^ AZ] / i ','', $ ова-> getRequest () -> getModuleName () ); ако ($ подигање = $ ова-> getActionController () -> GetInvokeArg ('подигање')) { $ Погледнете = $ bootstrap-> getResource ('поглед'); $ LayoutPath = $ ова-> _getBasePath (). "/ Modules / $ {} модул / скици / скрипти /"; / * Ако изгледот директориум постои тогаш се применува тоа, во спротивно само падне * Назад на основната * / ако (is_dir ($ layoutPath)) { $ Ова-> getActionController () -> GetHelper ("распоред") -> SetLayoutPath ($ layoutPath); $ View-> headLink () -> appendStylesheet ( "/ Стилови / $ {} модул / style.css" ); } } } }
Забелешка донесувањето на нашата база на патека (сп. APPLICATION_PATH) во конструкторот, ние исто така имаат кариерист и словослагател за базната патека. За разлика од претходната верзија на кодот, доколку распоред пат не постои тогаш ја шифрата ќе ти се врати на стандардниот распоред на патот. Ако основната патека не е поставен дека ќе се обиде да се утврди основната патека од постојаното APPLICATION_PATH, инаку исклучок е фрлена. Јас сум исто така cheekily фрлено во модул со седиште во стил лист за добра мерка
Модулот базирани распоред е определен од тоа дали на изгледот скрипта пат постои (очигледно овој метод може да се менува лесно). Ова се додава малку над глава од application.ini подесување (меѓутоа, ако постои патека распоред PHP ќе кеш резултат за ефикасноста *), но за возврат ќе добијат дополнителна погодност на полесно паѓајќи во нови модули.
Тоа е тоа, не многу различно, но вие не треба да додадете нова конфигурација влез секогаш кога ќе сакате да го додадете нов модул:)
* За да ја избришете оваа кеш (ако е потребно) употреба на clearstatcache функција.


















































Здраво, молам кажете ми каде да се создаде класа Pro_Controller_Action_Helper_SetLayoutPath со која името на датотеката
Јас сум newbie во Zend.
благодарение
Здраво Behrang, создаде акцијата помошник со кое име ви се допаѓа, јас имам свој "библиотека" со именски простор 'Про. Вие би можеле многу лесно го нарекуваат "SetLayoutPath" класа и ја стави каде што некогаш ви се допаѓа, под услов на кодот може да го најде и да го продолжи бараниот класи