Zend Framework Per-alapú modul beállításai
Már létrehozott egy követ ezen a poszton, amely kevesebb konfigurációt, nézze modul alapú elrendezés - Zend Framework .
Amikor a Zend Framework azokat a modulokat, annak nyilvánvaló, hogy ha fut a különböző (al-) helyek ki ugyanezt a kérelmet nem feltétlenül szeretné, hogy az azonos elrendezést scriptek minden egyes részét. Úgy döntöttem, hogy menjen el a site felépítése a következő:
/ Application / Irányítók ... / Modellek / Modules / Default / Irányítók / Elrendezés / Scripts / Views / Scripts / AnotherModule ... / Scripts
A problémát felállítása az elrendezést szkriptek a per-modul alapján. A válasz jött át a cselekvési Helper. Az elrendezések beállítása egy per-modul alapján három lépésből áll:
- Application.ini (vagy hasonló konfigurációs beállítás):
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 / tag / layouts / scripts "affiliate.resources.layout.layoutPath APPLICATION_PATH =" / modules / leányvállalat / layouts / scripts " - Hozd létre a cselekvés Helper:
<? Php / ** * Beállítja az elrendezést utat a per-modul alapján * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ 2010/01/01 óta * / osztály Pro_Controller_Action_Helper_SetLayoutPath kiterjeszti Zend_Controller_Action_Helper_Abstract { / ** * Beállítja elrendezés alapuló út modul * / public function preDispatch () { $ Module = $ this-> GetRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ("bootstrap")) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ modul] ['források'] ['layout'] ['layoutPath'])) { = $ LayoutPath $ Config [$ modul] ['források'] ['layout'] ['layoutPath']; $ This-> getActionController () -> GetHelper (layout) -> SetLayoutPath ($ layoutPath); } } } }
- És végül boostrap segítő intézkedés:
... / ** * Beállítja elrendezés szkriptek a per-modul alapján * / védett funkció _initLayoutHelper () { $ This-> bootstrap ('frontController'); $ Layout = Zend_Controller_Action_HelperBroker addHelper :: ( új Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































