Zend Framework Per-Moduł oparte ustawienia
Utworzyłem na to stanowisko, które wymaga mniej konfiguracji, patrz Moduł Based układ - Zend Framework .
Podczas korzystania z Zend Framework z modułów, jego oczywiste, że jeśli używasz różnych (pod) strony od samej aplikacji nie koniecznie chcą te same skrypty układu dla każdej części. Postanowiłem iść z następującej struktury serwisu:
/ Application Wizyjnej ... / Modele / Modules / Default Wizyjnej / Układ / Skrypty / Views / Skrypty / AnotherModule ... / Skrypty
Problem tworzenia skryptów układu na podstawie per-modułu. Odpowiedź przyszła za pomocą Helper działania. Konfigurowanie układów na podstawie za moduł obejmuje trzy etapy:
- Application.ini (lub podobny setup konfiguracji):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouts / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / layouty / scripts" affiliate.resources.layout.layoutPath znaku = APPLICATION_PATH "/ modules / partnerskie / layouty / scripts"
- Stwórz swój Helper działania:
<? Php / ** * Ustawia ścieżkę układu na podstawie za moduł * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Od 2010-01-01 * / klasa Pro_Controller_Action_Helper_SetLayoutPath rozszerza Zend_Controller_Action_Helper_Abstract { / ** * Układ Zestawy ścieżka oparta na module * / publicznych preDispatch function () { $ Module = $ this-> getRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ("bootstrap")) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ module] ['Zasoby'] ['układ'] ['layoutPath'])) { $ LayoutPath = $ Config [$ module] ['Zasoby'] ['układ'] ['layoutPath']; $ This-> getActionController () -> GetHelper ("układ") -> SetLayoutPath ($ layoutPath); } } } }
- I wreszcie boostrap pomocnika działania:
... / ** * Ustawia skrypty układu na podstawie za moduł * / chronione funkcja _initLayoutHelper () { $ This-> bootstrap ("FrontController '); $ Layout = Zend_Controller_Action_HelperBroker :: addHelper ( nowy Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































