Kot nadaljevanje moje prejšnje delovno mesto na modul na osnovi postavitve nastavitve za Zend okvira , sem posodobil kodo, da zahtevajo manj konfiguracijo nato pred (ne, da je potrebno več kot nekaj vrstic v svoji vlogi, konfiguracijo!).
Nadaljuj branje "Zend okvir Per Nastavitve modula postavitev - Navodila za nadaljnje delo" "
Členi , računalništvo , PHP , Spletno programiranje , okvirni Zend |
ukrepanje , krmilnik , okvir , pomagač , postavitev , modul , PHP , Zend , Zend okvirni
Sem ustvaril Nadaljnje delo za to delovno mesto, ki zahteva manj konfiguracijo, si oglejte modul Based postavitev - Zend okvirni .
Pri uporabi okvira Zend z moduli, njeno očitno, da če ste z izvajanjem različnih (pod) strani off iste vloge ne nujno želijo enake skripte postavitve za vsak del. Odločil sem se, da gredo z naslednjo strukturo mesta:
/ Uporaba
/ Krmilniki
...
/ Modeli
/ Moduli
/ Default
/ Krmilniki
/ Postavitev
/ Skripte
/ Views
/ Skripte
/ AnotherModule
...
/ Skripte
Težava je bila ustanovitev postavitve skripte za posamezno modul posebej. Odgovor je prišel s pomočjo akcijskega Helper. Postavitev z načrti za posamezno modula podlagi treh korakov:
- Application.ini (ali podobno konfiguracijo nastavitev):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ moduli / admin / postavitve / skripte"
default.resources.layout.layoutPath = APPLICATION_PATH "/ moduli / default / postavitve / skripte"
member.resources.layout.layoutPath = APPLICATION_PATH "/ moduli / države / postavitev / skripte"
affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ moduli / Affiliate / postavitev / skripte"
- Ustvarite svoj akcijski Helper:
<? Php
/ **
* Nastavitev postavitve pot za posamezno modula podlagi
*
* @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ Saj 2010-01-01
* /
razred Pro_Controller_Action_Helper_SetLayoutPath
razširja Zend_Controller_Action_Helper_Abstract
{
/ **
* Nastavi postavitev pot temelji na modulu
* /
javno funkcijo preDispatch ()
{
$ Modul = $ this-> getRequest () -> getModuleName ();
if ($ bootstrap = $ this-> getActionController ()
-> GetInvokeArg ("bootstrap")) {
$ Config = $ bootstrap-> getOptions ();
if (isset ($ config [$ modul] ['viri'] ['postavitev'] ['layoutPath'])) {
$ = LayoutPath
$ Config [$ modul] ['viri'] ['postavitev'] ['layoutPath'];
$ This-> getActionController ()
-> GetHelper ("postavitev")
-> SetLayoutPath ($ layoutPath);
}
}
}
} - In nenazadnje boostrap akcijski pomočnik:
...
/ **
* Nastavi do postavitve skripte za posamezno modula podlagi
* /
zaščitena funkcija _initLayoutHelper ()
{
$ This-> bootstrap ("frontController ');
$ = Postavitev Zend_Controller_Action_HelperBroker :: addHelper (
Nova Pro_Controller_Action_Helper_SetLayoutPath ());
}
...