Jatkotoimena aiempaan viesti per moduuli perustuu asetteluasetukset varten Zend Framework , olen päivittänyt koodin vaativat vähemmän kokoonpano sitten ennen (ei että se vaatii enemmän, että muutama rivi hakemuksesi kokoonpano!).
Jatka lukemista 'Zend Framework per moduuli asetteluasetukset - Seuranta "»
Artikkelit , Computing , PHP , Web-ohjelmointi , Zend Framework |
toiminta , ohjain , puitteet , auttaja , layout , moduuli , PHP , Zend , Zend Framework
Olen luonut followup tähän viestiin joka vaatii vähemmän kokoonpano löytyy moduuli perustuu Layout - Zend Framework .
Käytettäessä Zend Frameworkin kanssa moduulit, sen selvää, että jos käytät eri (ala) sivustoja off samaa hakemusta et välttämättä halua samaa asettelua skriptit kutakin osaa. Päätin mennä seuraava sivuston rakenteen:
/ Application
/ Säätimet
...
/ Mallit
/ Moduulit
/ Default
/ Säätimet
/ Layout
/ Scripts
/ Katselua
/ Scripts
/ AnotherModule
...
/ Scripts
Ongelma oli perustamassa layout komentosarjoja per-moduulin perusteella. Vastaus tuli kautta käyttäen Action Helper. Asettaminen asetteluja per-moduuli perusteella kuuluu kolme vaihetta:
- Application.ini (tai vastaava Kokoonpanon asennus):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / asettelujen / scripts"
default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / asettelujen / scripts"
member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / asettelujen / scripts"
affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / asettelujen / scripts"
- Luo Action Helper:
<? Php
/ **
* Asettaa asettelun polku kohti-moduuli perusteella
*
* @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ Vuodesta 01.01.2010
* /
luokka Pro_Controller_Action_Helper_SetLayoutPath
ulottuu Zend_Controller_Action_Helper_Abstract
{
/ **
* Asettaa layout polku jaettu moduulin
* /
julkisessa tehtävässä preDispatch ()
{
$ Moduuli = $ this-> GetRequest () -> getModuleName ();
if ($ bootstrap = $ this-> getActionController ()
-> GetInvokeArg ('bootstrap')) {
$ Config = $ bootstrap-> getOptions ();
if (isset ($ config [$ moduuli] ['resursseja'] ['ulkoasu'] ['layoutPath'])) {
$ LayoutPath =
$ Config [$ moduuli] ['resursseja'] ['ulkoasu'] ['layoutPath'];
$ This-> getActionController ()
-> GetHelper (Asetelma)
-> SetLayoutPath ($ layoutPath);
}
}
}
} - Ja lopuksi boostrap toiminta Helper:
...
/ **
* Määrittää asettelun komentosarjoja per-moduuli perusteella
* /
suojatun toiminnon _initLayoutHelper ()
{
$ This-> bootstrap ('frontController');
$ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
uusi Pro_Controller_Action_Helper_SetLayoutPath ());
}
...