Zend Framework Per-Modul postavke temeljene na
Napravio sam udarac na ovaj post koji zahtijeva manje konfiguraciji, molimo pogledajte Modul temelju izgleda - Zend Framework .
Kada koristite Zend Framework s modulima, očito je da ako radite različite (sub-) mjesta off isti zahtjev ne nužno žele isti izgled skripte za svaki dio. Odlučio sam ići sa sljedećim site struktura:
/ Primjena / Kontroleri ... / Modela / Modula / Default / Kontroleri / Izgled / Skripte / Pogleda / Skripte / AnotherModule ... / Skripte
Problem je postavljanje izgleda skripte na po-modul osnovi. Odgovor je došao kroz korištenje Akcija Helper. Postavljanje izgleda na po-modul osnovi uključuje tri koraka:
- Application.ini (ili sličnih konfiguracija setup):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / raspored / skripti" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / raspored / skripti" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / član / raspored / skripti" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / raspored / skripti"
- Kreirajte svoj Akcija Helper:
<? Php / ** * Postavlja izgled put na po-modul osnovi * * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Jer 2010/01/01 * / razred Pro_Controller_Action_Helper_SetLayoutPath proteže Zend_Controller_Action_Helper_Abstract { / ** * Postavlja izgled put se temelji na modulu * / javnu funkciju preDispatch () { $ Modul = $ this-> getRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ('bootstrap')) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ module] ['resursa'] ['izgled'] ['layoutPath'])) { $ LayoutPath = $ Config [$ module] ['resursa'] ['izgled'] ['layoutPath']; $ This-> getActionController () -> GetHelper ('izgled') -> SetLayoutPath ($ layoutPath); } } } }
- I na kraju boostrap djelovanje pomagača:
... / ** * Postavlja izgled skripte na po-modul osnovi * / zaštićena funkcija _initLayoutHelper () { $ This-> bootstrap ('frontController'); $ Izgleda = Zend_Controller_Action_HelperBroker:: addHelper ( Novi Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































Bok prvi hvala za tvoj koristan udžbenik, ali reci mi gdje sam stvoriti akciju pomagač s vještica ime datoteke?
behrang
Bok Behrang, stvoriti akciju pomagač s koje god ime vam se sviđa, imam svoje 'knjižnica' sa namespace 'Pro'. Vi samo mogao tako lako nazvati klase 'SetLayoutPath' i staviti ga gdje god želite, pod uvjetom da broj mogu ga pronaći i proširiti potrebne klase
Bok, iam zbunjeni s postavljanjem modula specifičnih baza podataka postavke ... Se bilo tko imati ideju?
Mislim da je ovo lako mogao biti postignut usign iznad uzorak. Prvo, stvoriti mogućnosti u svom ini datoteke uz datoteke:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Itd ...
Zatim jednostavno generirati vaše veze baze podataka kao što vidite stane (Zend_Db:: tvornica () ili slično) i to skriti daleko u registar ili ga postaviti kao zadani adapter ako koristite Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).