Zend Framework modulo de configuración de Per-

Por Lloyd Watkin Steven , viernes 01 de enero 2010 22:40

He creado un seguimiento a esta entrada que requiere menos configuración, consulte el módulo base de diseño - Zend Framework .

Cuando se utiliza el Zend Framework con los módulos, es obvio que si se está ejecutando varias (sub) sitios de la misma aplicación que no necesariamente quieren el mismo diseño de secuencias de comandos para cada parte. Decidí ir con la estructura siguiente sitio:

  / Aplicación
     / Controladores
         ...
     / Modelos
     / Módulos
         / Default
             / Controladores
             / Diseño
                 / Scripts
             / Puntos de vista
                 / Scripts
         / AnotherModule
             ...
     / Scripts

El problema fue la creación de las secuencias de comandos de diseño en función de cada módulo. La respuesta llegó mediante el uso de un ayudante de Acción. La creación de los diseños en función de cada módulo consta de tres pasos:

  1. Application.ini (o la configuración de configuración 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 / afiliado / layouts / scripts" 
  2. Crea tu Acción de Ayuda:
      <? Php
     / **
      * Establece la ruta de diseño en función de cada módulo
      *
      * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Desde 01/01/2010
      * /
     Pro_Controller_Action_Helper_SetLayoutPath clase
         se extiende Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Juegos de ruta de diseño basada en el módulo
          * /
         preDispatch función pública ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ arranque getActionController = $ this-> ()
    	                        - GetInvokeArg> ('bootstrap')) {
    
    	         $ Config = $ getOptions> arranque ();
    
    	         if (isset ($ config ['layout'] [$ modulo] ['recursos'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ modulo] ['layout'] ['recursos'] ['layoutPath'];
    	             getActionController $ this-> ()
    	                  - GetHelper> ('layout')
    	                  - SetLayoutPath> ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Y por último bootstrap el ayudante de acción:
     ...  / ** * Establece secuencias de comandos de diseño en un * para cada módulo / _initLayoutHelper función protegida () {arranque $ this-> ('FrontController'); $ layout = Zend_Controller_Action_HelperBroker:: addHelper (Pro_Controller_Action_Helper_SetLayoutPath nuevo ());} .. . 

4 Respuestas a "Zend Framework basado en configuración de cada módulo"

  1. Behrang dice:

    Hola primero gracias por su ayuda tutorial, pero dime donde puedo crear una acción de ayuda con el nombre de archivo de brujas?
    Behrang

  2. Hola Behrang, crear el ayudante de acción con cualquier nombre que desee, yo tengo mi propia "biblioteca" con el espacio de nombres 'Pro'. Usted podría fácilmente llamada 'SetLayoutPath "la clase y ponerla donde quiera que te gusta, siempre que el código se puede encontrar y ampliar las clases obligatorias

  3. Shashi Kanth dice:

    Hola, iam confundirse con la configuración de módulo de configuración de base de datos específica ... ¿alguien tiene una idea?

  4. Creo que esto podría lograrse fácilmente usign el patrón anterior. En primer lugar, crear opciones en el archivo ini a lo largo de los archivos de:

    moduleName.db.user = "
    moduleName.db.password = "
    moduleName2.db.user = "
    ... Etc ...

    Después, simplemente generar la conexión de base de datos como mejor le parezca (Zend_Db:: factory () o similar) y esconder la basura en el registro o un conjunto como el adaptador de forma predeterminada si se usa Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Deja una respuesta













Panorama Tema por Themocracy

4 visitantes en línea ahora
3 personas, contra los robots de 1, 0 miembros
Número máximo de visitantes de hoy: 12 a las 07:57 UTC
Este mes: 22 a 06/08/2011 12:30a.m. UTC
Este año: 130 en 28-03-2011 22:40 UTC
Todo el tiempo: 130 en 28-03-2011 22:40 UTC