Zend Framework Per-modul alapú beállítások
Én már létrehozott egy követ, hogy ezen a poszton, amely előírja kevesebb konfigurációt, lásd modul alapú elrendezés - Zend Framework .
Amikor a Zend Framework azokat a modulokat, annak nyilvánvaló, hogy ha fut a különböző (al-) helyek ki ugyanezt a kérelmet nem feltétlenül szeretnénk, hogy ugyanolyan elrendezés szkriptek esetében minden egyes részét. Úgy döntöttem, hogy menjen a következő site felépítése:
/ Alkalmazás / Vezérlők ... / Modellek / Modulok / Default / Vezérlők / Elrendezés / Scripts / Views / Scripts / AnotherModule ... / Scripts
A probléma az volt létrehozásáról elrendezés szkriptek egy-egy modul alapon. A válasz jött át felhasználásával cselekvési Helper. Beállítása az elrendezések egy-egy modul alapján három lépésből áll:
- Application.ini (vagy hasonló konfiguráció beállítás):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouts / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / tag / layouts / scripts" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / layouts / scripts"
- Hozd létre a cselekvés Helper:
<? Php / ** * Megadja az elrendezési út egy-egy modul alapján * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Óta 2010/01/01 * / osztály Pro_Controller_Action_Helper_SetLayoutPath kiterjeszti Zend_Controller_Action_Helper_Abstract { / ** * Beállítja elrendezés alapuló út modul * / public function preDispatch () { $ Module = $ this-> getRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ("bootstrap")) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ modul] ['források'] ['layout'] ['layoutPath'])) { $ LayoutPath = $ Config [$ modul] ['források'] ['layout'] ['layoutPath']; $ This-> getActionController () -> GetHelper ("elrendezés") -> SetLayoutPath ($ layoutPath); } } } }
- És végül boostrap intézkedés helper:
... / ** * Beállítja elrendezés szkriptek egy-egy modul alapján * / védett funkció _initLayoutHelper () { $ This-> bootstrap ("frontController '); $ Layout = Zend_Controller_Action_HelperBroker:: addHelper ( új Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































Szia először köszönöm a segítséget bemutató, de mondja meg, hol akció létrehozása segítőnk boszorkány file neve?
behrang
Szia Behrang, hozzon létre a cselekvés segítőnk melyik név tetszik, van saját "könyvtár" a névtér "Pro". Te is ugyanolyan könnyen hívja az osztály "SetLayoutPath", és tedd, ahol valaha is tetszik, feltéve, hogy a kódot megtalálja, és kiterjeszti a szükséges osztályok
Szia, iam összetéveszteni létrehozásával modul specifikus adatbázis beállításokat ... nem akárki, van egy ötletem?
Azt hiszem, ez könnyen megvalósítható usign a fenti mintával. Először is, létre lehetőségek az Ön ini fájlban menti a fájlokat a:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Stb ...
Ezután egyszerűen létre az adatbázis kapcsolat belátása szerint (Zend_Db:: factory () vagy hasonló), és rejtjük azt el a rendszerleíró adatbázisban, vagy állítsa be az alapértelmezett adaptert, ha használ Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).