Zend Framework Per-ustawienia modułowe
Utworzona na to stanowisko, które wymaga mniej konfiguracji można znaleźć układ oparty na Module - Zend Framework .
Podczas korzystania z Zend Framework z modułów, jego oczywiste, że jeśli używasz różnych (pod) stron z tej samej aplikacji nie koniecznie chcą tego samego skrypty układ dla każdej części. Postanowiłem iść z następującą strukturę strony:
/ Zastosowanie / Kontrolery ... / Models / Modules / Default / Kontrolery / Layout / Scripts / Views / Scripts / AnotherModule ... / Scripts
Problem polegał na tworzeniu skryptów układu na poszczególnych modułów. Odpowiedź przyszła poprzez wykorzystanie Action Helper. Konfigurowanie układów na poszczególnych modułów z trzech etapów:
- Application.ini (lub podobnych instalacji konfiguracji):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / skrypty" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouts / skrypty" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / layouts / skrypty" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / layouts / skrypty"
- Stwórz Action Helper:
<? Php / ** * Ustawia ścieżkę układu na poszczególnych modułów * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Od 01.01.2010 * / klasy Pro_Controller_Action_Helper_SetLayoutPath rozciąga Zend_Controller_Action_Helper_Abstract { / ** * Ustawia ścieżkę układ oparty na module * / publicznych preDispatch function () { $ Module = $ this-> getRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () - GetInvokeArg> ("bootstrap")) { $ Config = $ bootstrap-> GetOptions (); if (isset ($ config ['układ'] [$ module] ['zasobów'] ['layoutPath'])) { = $ LayoutPath $ Config [$ module] ['układ'] ['zasobów'] ['layoutPath']; $ This-> getActionController () - GetHelper> ("układ") - SetLayoutPath> ($ layoutPath); } } } }
- I wreszcie boostrap pomocnika działania:
... / ** * Ustawia skrypty układ na poszczególnych modułów * / chronione _initLayoutHelper function () { $ This-> bootstrap ("FrontController '); $ Layout = Zend_Controller_Action_HelperBroker:: addHelper ( Pro_Controller_Action_Helper_SetLayoutPath new ()); } ...


















































Witam pierwsze dzięki za pomocny poradnik ale powiedz mi, gdzie mogę utworzyć pomocniczą akcji o nazwie pliku czarownica?
behrang
Witam Behrang, tworzyć pomocnika działania z zależności od tego, jak nazwa, mam swój własny "biblioteka" z nazw "Pro". Można równie dobrze zadzwonić do klasy "SetLayoutPath" i umieścić go gdziekolwiek chcesz, pod warunkiem, że kod może go znaleźć i można rozszerzyć wymaganych klas
Witam, iam mylić z tworzenia specyficznych dla modułu ustawienia bazy danych ... czy ktoś ma pomysł?
Myślę, że może to łatwo osiągnąć Używając opcji powyżej wzorca. Po pierwsze, stworzenie opcji w pliku ini wzdłuż plików:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Etc ...
Następnie po prostu wygenerować połączenia z bazą danych zgodnie z potrzebami (Zend_Db:: factory () lub podobne) i przechowujemy ją w rejestrze lub ustawić go jako domyślny adapter w przypadku korzystania Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).