Zend Framework Per-moodul põhineb seaded
Olen loonud Järg sellele ametikohale, mis nõuab vähem konfiguratsiooni, vaata Moodul põhjal paigutus - Zend Framework .
Kui kasutate Zend Framework moodulite, selle selge, et kui näed erinevate (ala-) saitidele välja sama rakendus, mida ei pea tingimata tahavad sama skeem skriptid iga osa jaoks. Ma otsustasin minna koos järgmiste saidi struktuuri:
/ Application / Kontrollerid ... / Mudelid / Modules / Default / Kontrollerid / Paigutus / Scripts / Vaatamist / Scripts / AnotherModule ... / Scripts
Probleem oli moodustanud paigutus skripte igale moodulile eraldi. Vastus tuli läbi kasutades Action Helper. Seadistamine paigutusega igale moodulile eraldi hõlmab kolme etappi:
- Application.ini (vms konfiguratsiooni setup):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / paigutusega / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / paigutusega / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / liige / paigutusega / scripts" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / paigutusega / scripts"
- Loo Action Helper:
<? Php / ** * Määrab paigutus liini igale moodulile eraldi * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Alates 2010/01/01 * / klassi Pro_Controller_Action_Helper_SetLayoutPath laieneb Zend_Controller_Action_Helper_Abstract { / ** * Määrab paigutus tee tugineb moodulile * / avaliku funktsiooni preDispatch () { $ Module = $ this-> getRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ("bootstrap")) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ moodul] ['ressursid'] ['paigutus'] ['layoutPath'])) { $ LayoutPath = $ Config [$ moodul] ['ressursid'] ['paigutus'] ['layoutPath']; $ This-> getActionController () -> GetHelper ("skeem") -> SetLayoutPath ($ layoutPath); } } } }
- Ja lõpuks boostrap hagi abimees:
... / ** * Loob paigutus skripte igale moodulile eraldi * / kaitstud funktsiooni _initLayoutHelper () { $ This-> bootstrap ("frontController '); $ Paigutus = Zend_Controller_Action_HelperBroker: addHelper ( uus Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































Tere esimese tänud abivalmis juhendaja, kuid öelge mulle, kus ma loob hagi helper koos nõid faili nimi?
behrang
Tere Behrang, luua meetmeid helper koos kumb nimi sulle meeldib, mul on oma "raamatukogu" koos namespace "Pro". Sa võiksid sama hästi kõne klassi SetLayoutPath "ja pane see, kus kunagi sulle meeldib, kui kood ei leia seda ja te laiendada nõutav klasside
Tere, iam segi ajada loomise moodul konkreetse andmebaasi seaded ... Kas kellelgi on idee?
Ma arvan, et see võib kergesti saavutada usign eespool muster. Esiteks, luua võimalusi oma ini faili mööda failid:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Jne ...
Siis lihtsalt luua oma andmebaasi ühendus nagu näed (Zend_Db: tehas () vms) ja Kätkö see ära registri või seadistada see vaikimisi adapter kui kasutatakse Zend_Db_Table (Zend_Db_Table: setDefaultAdapter ()).