Zend Framework Per-moduuli perustuu asetukset
Olen luonut seurannassa tähän tekstiin, joka vaatii vähemmän kokoonpano löytyy moduuli perustuu Layout - Zend Framework .
Kun käytät Zend Framework moduulit, sen selvää, että jos käytät eri (ala-) sivustot pois samaa hakemusta et välttämättä halua samaa asettelua skriptit kutakin osaa. Päätin mennä seuraava sivuston rakenteen:
/ Sovellus / Säätimet ... / Mallit / Modules / Default / Säätimet / Layout / Scripts / Katselua / Scripts / AnotherModule ... / Scripts
Ongelma oli perustamassa layout skriptejä per-moduulin perusteella. Vastaus tuli hyödyntämällä Action Helper. Perustamalla layoutin per-moduuli perusteella kuuluu kolme vaihetta:
- Application.ini (tai vastaava kokoonpano setup):
admin.resources.layout.layoutPath = APPLICATION_PATH "modules / admin / kuvitus / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "modules / default / kuvitus / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "modules / jäsen / kuvitus / scripts" affiliate.resources.layout.layoutPath = APPLICATION_PATH "modules / affiliate / kuvitus / scripts"
- Luo Toimi Helper:
<? Php / ** * Asettaa layout polku kohti moduuli perusteella * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Alkaen 1.1.2010 * / luokka Pro_Controller_Action_Helper_SetLayoutPath ulottuu Zend_Controller_Action_Helper_Abstract { / ** * Asettaa layout polku perustuu moduuli * / julkista tehtävää preDispatch () { $ Moduuli = $ this-> GetRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ('bootstrap')) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ moduuli] ['varat'] ['ulkoasu'] ['layoutPath'])) { $ LayoutPath = $ Config [$ moduuli] ['varat'] ['ulkoasu'] ['layoutPath']; $ This-> getActionController () -> GetHelper (layout) -> SetLayoutPath ($ layoutPath); } } } }
- Ja lopuksi boostrap toiminta helper:
... / ** * Asettaa layout skriptejä per-moduuli perusteella * / suojatun toiminnon _initLayoutHelper () { $ This-> bootstrap (frontController "); $ Layout = Zend_Controller_Action_HelperBroker: addHelper ( uusi Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































Hei ensimmäinen kiitos hyvä opetusohjelma, mutta kerro minulle, missä voin luoda toiminta auttaja kanssa noita tiedoston nimi?
behrang
Hei Behrang, luoda toiminta auttaja ja kumpi haluamasi nimen, minulla on oma "kirjasto", jossa nimiavaruus "Pro". Voisit yhtä hyvin kutsua luokan SetLayoutPath "ja laita se minne haluat, jos koodi löytää sen ja voit laajentaa tarvittavat luokat
Hei, IAM sekoittaa perustaa moduulin tiettyyn tietokantaan asetukset ... Onko kellään ideoita?
Mielestäni tämä voitaisiin helposti saavuttaa usign edellä kuvio. Ensinnäkin, luoda vaihtoehtoja oman ini-tiedoston pitkin tiedostot:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Jne ...
Sitten vain luoda tietokantayhteyden kuten näette (Zend_Db: tehdas () tai vastaava) ja piilottelevat sitä pois rekisteristä tai asettaa sen oletuksena sovitin, jos käytät Zend_Db_Table (Zend_Db_Table: setDefaultAdapter ()).