Zend okvirni Per-Module nastavitvami, ki temeljijo
Sem ustvaril slediti na to delovno mesto, ki zahteva manj konfiguracije, glejte Modul Na Layout - Zend okvir .
Pri uporabi Zend okvir z moduli, njeno očitno, da če ste z izvajanjem različnih (sub-) območij off ista vloga vam ni nujno želijo enake skripte postavitev za vsak del. Odločil sem se, da gredo z naslednjo strukturo mesta:
/ Uporaba / Krmilniki ... / Modeli / Moduli / Default / Krmilniki / Postavitev / Skripte / Ogledov / Skripte / AnotherModule ... / Skripte
Težava je bila ustanovitev postavitev skripte na per-modul osnovi. Odgovor je prišel s pomočjo akcijskega Helper. Nastavitev postavitve na per-modul podlagi treh korakov:
- Application.ini (ali podobno konfiguracijo setup):
admin.resources.layout.layoutPath APPLICATION_PATH = "/ modules / admin / postavitev / skripte" default.resources.layout.layoutPath APPLICATION_PATH = "/ modules / default / postavitev / skripte" member.resources.layout.layoutPath APPLICATION_PATH = "/ modules / član / postavitev / skripte" affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ modules / affiliate / postavitev / skripte"
- Ustvarite svoj akcijski Helper:
<? Php / ** * Nastavi postavitev pot na per-modul osnovi * * @ Avtor 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, ki temelji na modulu * / javno funkcijo preDispatch () { Modul $ = $ tega-> getRequest () -> getModuleName (); if ($ bootstrap = $ tega-> getActionController () -> GetInvokeArg ("bootstrap")) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config ['postavitev'] [$ modul] ['virov'] ['layoutPath'])) { $ LayoutPath = $ Config [$ modul] ['postavitev'] ['virov'] ['layoutPath']; $ To-> getActionController () -> GetHelper ("postavitev") -> SetLayoutPath ($ layoutPath); } } } }
- In nenazadnje boostrap ukrep helper:
... / ** * Nastavi postavitev skripte na per-modul osnovi * / zaščitene funkcije _initLayoutHelper () { $ To-> bootstrap ("frontController"); $ Postavitev = Zend_Controller_Action_HelperBroker:: addHelper ( novo Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































Hi najprej hvala za vašo pomoč tutorial, ampak povej mi kje sem ustvariti akcijski helper čarovnica z imenom datoteke?
behrang
Hi Behrang, ustvarite ukrep helper z ustreznim imenom vam je všeč, imam svoj lasten "knjižnica" z namespace "Pro". Lahko bi prav tako enostavno klic v razred "SetLayoutPath" in ga povsod, kjer vam je všeč, če kodo lahko najdejo ter razširitev zahteva razredov
Hi, iam zamenjati z vzpostavitvijo modula posebno podatkovno bazo, nastavitve ... kdorkoli ima idejo?
Mislim, da bi se to lahko enostavno doseči usign zgornji vzorec. Prvič, ustvariti možnosti v vašem ini datoteki vzdolž datoteke:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Itd ...
Nato preprosto ustvarite zbirke podatkov povezavo, kot se vam zdi primerno (Zend_Db:: tovarne () ali podobno) in robo proč v registru ali ga nastavite kot privzeti adapter, če uporabljate Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).