Zend Framework mòdul de configuració de Per-

Per Lloyd Watkin Steven , divendres 1 gener 2010 22:40

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:

  1. 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" 
  2. 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);
    	         }
        	 }
         }
     } 
  3. 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 ());
    	 }
     ... 

4 Respostes a "Zend Framework basat en configuració de cada mòdul"

  1. Behrang diu:

    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

  2. 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

  3. Shashi Kantha diu:

    Hola, iam confondre amb la configuració de mòdul de configuració de base de dades específica ... algú té una idea?

  4. 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 ()).

Deixa una resposta













Panorama Tema per Themocracy

6 visitants en línia
4 persones, contra els robots d'2, 0 membres
Nombre màxim de visitants d'avui: 23 a les 04:19 UTC
Aquest mes: 26 a 2011.07.05 12:35 UTC
Aquest any: 130 en 2011.03.28 22:40 UTC
Tot el temps: 130 en 2011.03.28 22:40 UTC