Zend Framework Per-modul založený nastavenie
Som vytvoril Ísť k tomuto príspevku, ktorý vyžaduje menej konfigurácie, pozri modul založený Layout - Zend Framework .
Pri použití Zend Framework moduly, jeho zrejmé, že ak používate rôzne (sub-) lokalít mimo rovnaké aplikácie nemusíte nutne chcieť rovnaké rozloženie skripty pre každú časť. Rozhodol som sa ísť s nasledujúce štruktúry webu:
/ Aplikácia / Regulátory ... / Modely / Modules / Default / Regulátory / Layout / Scripts / Pohľady / Scripts / AnotherModule ... / Scripts
Problém bol nastavenie rozloženia skripty pre jednotlivé moduly základe. Odpoveď prišla pri používaní akčné pomocníka. Nastavenie rozloženia na jednotlivé moduly základe zahŕňa tri kroky:
- Application.ini (alebo podobné konfigurácie nastavenia):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouty / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouty / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / člen / Rozvrhnutie / scripts" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / partnerské / Rozvrhnutie / scripts"
- Vytvorte si svoj akčný Pomocník:
<? Php / ** * Nastavenie rozloženia na cestu za modulu základe * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Od 2010-01-01 * / trieda Pro_Controller_Action_Helper_SetLayoutPath rozširuje Zend_Controller_Action_Helper_Abstract { / ** * Sady rozloženie cesta založená na module * / public function preDispatch () { $ Modul = $ this-> GetRequest () -> getModuleName (); if ($ Bootstrap = $ this-> getActionController () -> GetInvokeArg ("Bootstrap")) { $ Config = $ Bootstrap-> getOptions (); if (isset ($ config [$ modul] ['zdroje'] ['layout'] ['layoutPath'])) { $ = LayoutPath $ Config [$ modul] ['zdroje'] ['layout'] ['layoutPath']; $ This-> getActionController () -> GetHelper ("layout") -> SetLayoutPath ($ layoutPath); } } } }
- A konečne boostrap akčného pomocníka:
... / ** * Nastavuje vzhľad skripty pre jednotlivé moduly základe * / chránenej funkcie _initLayoutHelper () { $ This-> Bootstrap ("frontController '); $ Layout = Zend_Controller_Action_HelperBroker :: addHelper ( Nová Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































