Selle jätkuna mu eelmine postitus per moodul põhinev skeem seaded ja Zend Framework , olen uuendatud koodi nõuda vähem konfiguratsiooni siis enne (mitte et see vajalik rohkem kui paar rida oma rakenduse konfiguratsiooni!).
Jätka lugemist "Zend Framework Per Module Layout Settings - Follow Up" »
Artiklid , IT , PHP , veebi programmeerimine , Zend Framework |
tegevus , kontroller , raamistik , helper , küljendus , moodul , PHP , Zend , Zend Framework
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 ());
}
...