Zend Framework mòdul de configuració de Per-
He creat un seguiment d'aquesta entrada que requereix menys configuració, consulteu el mòdul base de disseny - Zend Framework .
Quan s'utilitza el Zend Framework amb els mòduls, és obvi que si s'està executant diverses (sub) llocs de la mateixa aplicació que no necessàriament volen el mateix disseny de seqüència per a cada part. Vaig decidir anar amb l'estructura següent lloc:
/ Aplicació / Controladors ... / Models / Mòduls / Default / Controladors / Disseny / Scripts / Punts de vista / Scripts / AnotherModule ... / Scripts
El problema va ser la creació de les seqüències d'ordres de disseny en funció de cada mòdul. La resposta va arribar mitjançant l'ús d'un ajudant d'Acció. La creació dels dissenys en funció de cada mòdul consta de tres passos:
- Application.ini (o la configuració de configuració similar):
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 / member / layouts / scripts" affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ modules / afiliat / layouts / scripts"
- Crea un Acció d'Ajuda:
<? Php / ** * Estableix la ruta de disseny en funció de cada mòdul * * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Des 2010.01.01 * / Pro_Controller_Action_Helper_SetLayoutPath classe s'estén Zend_Controller_Action_Helper_Abstract { / ** * Jocs de ruta de disseny basada en el mòdul * / preDispatch funció pública () { $ Module = $ this-> getRequest () -> getModuleName (); if ($ arrencada getActionController = $ this-> () - GetInvokeArg> ('arrencada')) { $ Config = $ getOptions> arrencada (); if (isset ($ config ['layout'] [$ mòdul] ['recursos'] ['layoutPath'])) { $ LayoutPath = $ Config [$ mòdul] ['layout'] ['recursos'] ['layoutPath']; getActionController $ this-> () - GetHelper> ('layout') - SetLayoutPath> ($ layoutPath); } } } }
- I finalment bootstrap l'ajudant d'acció:
... / ** * Estableix seqüències d'ordres de disseny en funció de cada mòdul * / _initLayoutHelper funció protegida () { $ This-> arrencada ('FrontController'); $ Layout = Zend_Controller_Action_HelperBroker:: addHelper ( Pro_Controller_Action_Helper_SetLayoutPath nou ()); } ...


















































Hola primer gràcies per la seva ajuda tutorial, però digues-me on puc crear una acció d'ajuda amb el nom de fitxer de bruixes?
Behrang
Hola Behrang, crear l'ajudant d'acció amb qualsevol nom que vulgui, jo tinc la meva pròpia "biblioteca" amb l'espai de noms 'Pro'. Vostè podria fàcilment anomenada 'SetLayoutPath "la classe i posar-la allà on t'agrada, sempre que el codi es pot trobar i ampliar les classes obligatòries
Hola, iam confondre amb la configuració de mòdul de configuració de base de dades específica ... algú té una idea?
Crec que això podria aconseguir fàcilment usign el patró anterior. En primer lloc, crear opcions a l'arxiu inicial al llarg dels arxius de:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Etc ...
Després, simplement generar la connexió de base de dades com millor li sembli (Zend_Db:: factory () o similar) i amagar les escombraries en el registre o un conjunt com l'adaptador per defecte si s'utilitza Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).