Zend Framework už modulio pagrindu nustatymai
Aš sukūriau tokį Taip pat į šį postą, kuris reikalauja mažiau konfigūracijos, žr modulis Remiantis išdėstymas - Zend Framework .
Jei naudojate Zend Framework su moduliais, jos akivaizdu, kad jei jūs naudojate įvairius (sub-) - off toje pačioje paraiškoje jūs nebūtinai nori tuos pačius išdėstymo scenarijus kiekvienai daliai. Aš nusprendė eiti su šios svetainės struktūrą:
/ Taikymas (Arba) valdikliai ... / Modeliai / Modules / Default (Arba) valdikliai / Išdėstymas Arba scenarijai / Views Arba scenarijai / AnotherModule ... Arba scenarijai
Problema buvo įsteigti išdėstymo scenarijus už modulio pagrindu. Atsakymas atėjo naudojantis veiksmų padėjėjas. Įsteigti maketus už modulio pagrindu apima tris žingsnius:
- Application.ini (ar panašios konfigūracijos nustatymas):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ Moduliai / admin / maketai ir (arba) scenarijus" default.resources.layout.layoutPath = APPLICATION_PATH "/ Moduliai / default / maketai ir (arba) scenarijus" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / maketai ir (arba) scenarijus" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ Moduliai / partnerių / maketai ir (arba) scenarijus"
- Sukurti savo veiksmų Helper:
<? Php / ** * Nustato išdėstymo kelią už modulio pagrindu * * @ Author. Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Nuo 2010-01-01 * / klasė Pro_Controller_Action_Helper_SetLayoutPath išplečia Zend_Controller_Action_Helper_Abstract { / ** * Nustato išdėstymas kelias modulis * / public function preDispatch () { $ Module = $ this-> getRequest () -> getModuleName (); jei ($ savirankos = $ this-> getActionController () -> GetInvokeArg (Bootstrap ")) { $ Config = $ savirankos-> getOptions, (); if (isset ($ config [$ modulis] ['išteklių'] ['išdėstymas'] ['layoutPath'])) { $ LayoutPath = $ Config [$ modulis] ['išteklių'] ['išdėstymas'] ['layoutPath "]; $ This-> getActionController () -> GetHelper (išdėstymas ") -> SetLayoutPath ($ layoutPath); } } } }
- Ir galiausiai boostrap veiksmų pagalbininkas:
... / ** * Nustato skriptus maketams už modulio pagrindu * / apsaugotas funkcija _initLayoutHelper () { $ This-> savirankos ("frontController); $ Išdėstymas = Zend_Controller_Action_HelperBroker :: addHelper ( naujas Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































