Zend Framework Per-moodul põhineb seaded
Olen loonud Järg sellele ametikohale, mis nõuab vähem konfiguratsiooni leiate moodul põhineb paigutus - Zend Framework .
Kui kasutate Zend Framework moodulite, selle selge, et kui näed erinevate (ala-) saite välja, et sama taotlust te ei pruugi taha sama kujundus skriptid iga osa. Ma otsustasin minna koos järgmiste saidi struktuuri:
/ Application / Kontrollerid ... / Mudelid / Modules / Default / Kontrollerid / Kujundus / Scripts / Seisukohad / Scripts / AnotherModule ... / Scripts
Probleem oli luua paigutuse skripte igale moodulile eraldi. Vastus tuli läbi kasutades Action Helper. Loomise plaanide kohta igale moodulile eraldi kolmeetapilise protsessi:
- Application.ini (või sarnase konfiguratsiooni häälestus):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / skeeme / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / skeeme / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / skeeme / scripts" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / skeeme / scripts"
- Loo Action Helper:
<? Php / ** * Määrab paigutus tee, igale moodulile eraldi * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Alates 2010/01/01 * / klassi Pro_Controller_Action_Helper_SetLayoutPath laiendab Zend_Controller_Action_Helper_Abstract { / ** * Komplektid paigutus tee põhineb moodul * / avalikke ülesandeid preDispatch () { $ Module = $ this-> getRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg (bootstrap ")) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ module] ['ressursid'] ['paigutus'] ['layoutPath'])) { $ LayoutPath = $ Config [$ module] ['ressursid'] ['paigutus'] ['layoutPath']; $ This-> getActionController () -> GetHelper (kujundus) -> SetLayoutPath ($ layoutPath); } } } }
- Ja lõpuks boostrap tegevus helper:
... / ** * Rajab paigutus skripte igale moodulile eraldi * / kaitsealade funktsiooni _initLayoutHelper () { $ This-> bootstrap (frontController '); $ Paigutus = Zend_Controller_Action_HelperBroker :: addHelper ( uus Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































