V návaznosti na můj předchozí příspěvek na modul na uspořádání nastavení pro Zend Framework , jsem aktualizoval kód vyžadovat méně konfiguraci, tedy před (ne že by to vyžadovalo více než pár řádek v konfiguraci aplikace!).
Pokračovat ve čtení "Zend Framework za nastavení modulu Dispozice - navazující" »
Články , na počítači , PHP , webové programování , Zend Framework |
akce , regulátor , rámec , pomocník , uspořádání , modul , PHP , Zend , Zend Framework
Vytvořil jsem Jít na tento příspěvek, který vyžaduje méně konfigurace, viz modul založený Layout - Zend Framework .
Při použití Zend Framework s moduly, jejich zjevné, že pokud používáte různé (sub-) stránky z stejná aplikace, nemusí chtít stejné rozložení scénářů pro každou část. Rozhodl jsem se jít s následující struktury webu:
/ Aplikace
/ Regulátory
...
/ Modely
/ Modules
/ Default
/ Regulátory
/ Rozvržení
/ Scripts
/ Zobrazení
/ Scripts
/ AnotherModule
...
/ Scripts
Problém byl v nastavení rozvržení skripty na bázi modulu. Odpověď přišla až s použitím Akce Helper. Nastavení rozložení na jednotlivé moduly základě zahrnuje tři kroky:
- Application.ini (nebo podobné nastavení konfigurace):
admin.resources.layout.layoutPath APPLICATION_PATH = "/ modules / admin / layouty / scripts"
default.resources.layout.layoutPath APPLICATION_PATH = "/ modules / default / layouty / scripts"
member.resources.layout.layoutPath APPLICATION_PATH = "/ modules / člen / layouty / scripts"
affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ modules / affiliate / layouty / scripts"
- Vytvořte si svůj Akce Helper:
<? Php
/ **
* Nastavení rozložení na cestu za modul základě
*
* @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ Od 1.1.2010
* /
Třída Pro_Controller_Action_Helper_SetLayoutPath
rozšiřuje Zend_Controller_Action_Helper_Abstract
{
/ **
* Nastavení vzhledu cestu založenou na modulu
* /
public function preDispatch ()
{
$ Modul = $ this-> GetRequest () -> getModuleName ();
if ($ bootstrap = $ this-> getActionController ()
-> GetInvokeArg ("bootstrap")) {
$ Config = $ bootstrap-> getOptions ();
if (isset ($ config [$ modul] [zdrojů '] [' layout '] [' layoutPath '])) {
$ = LayoutPath
$ Config [$ modul] [zdrojů '] [' layout '] [' layoutPath '];
$ This-> getActionController ()
-> GetHelper ('layout')
-> SetLayoutPath ($ layoutPath);
}
}
}
} - A konečně boostrap akce pomocníka:
...
/ **
* Nastavuje uspořádání skripty pro jednotlivé moduly základě
* /
funkce ochrany _initLayoutHelper ()
{
$ This-> bootstrap ("frontController ');
$ Layout = Zend_Controller_Action_HelperBroker: addHelper (
Nový Pro_Controller_Action_Helper_SetLayoutPath ());
}
...