Como seguimiento a mi post anterior sobre la configuración por módulo de diseño basado en Zend Framework , he actualizado el código que necesitan menos configuración que antes (no es que se requiere más que unas pocas líneas en la configuración de la aplicación!).
Continue reading 'Zend Framework por ajustes de diseño del módulo - Seguimiento' »
Artículos , Informática , PHP , Programación Web , Zend Framework |
acción , control , marco , ayuda , diseño , módulo , PHP , Zend , Zend Framework
He creado una respuesta a este mensaje, que requiere menos configuración, consulte Diseño de Módulo de base - 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 del sitio lo siguiente:
/ Aplicación
/ Controladores
...
/ Modelos
/ Modules
/ Default
/ Controladores
/ Diseño
/ Scripts
/ Puntos de vista
/ Scripts
/ AnotherModule
...
/ Scripts
El problema fue la creación de los guiones 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:
- 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"
- Crea tu ayudante de acción:
<? Php
/ **
* Establece la ruta de distribución en función de cada módulo
*
* @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ Since 01/01/2010
* /
clase Pro_Controller_Action_Helper_SetLayoutPath
se extiende Zend_Controller_Action_Helper_Abstract
{
/ **
* Establece camino trazado basado en el módulo
* /
preDispatch función pública ()
{
$ Module = $ this-> getRequest () -> getModuleName ();
if ($ bootstrap = $ this-> getActionController ()
-> GetInvokeArg ('arranque')) {
$ Config = $ bootstrap-> getOptions ();
if (isset ($ config [$ modulo] ['recursos'] ['layout'] ['layoutPath'])) {
$ LayoutPath =
[$ Módulo] $ config ['recursos'] ['layout'] ['layoutPath'];
$ This-> getActionController ()
-> GetHelper ('layout')
-> SetLayoutPath ($ layoutPath);
}
}
}
} - Y, por último boostrap el ayudante de acción:
...
/ **
* Establece los guiones de diseño en función de cada módulo
* /
protegidos _initLayoutHelper function ()
{
$ This-> bootstrap ('frontController');
$ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
nueva Pro_Controller_Action_Helper_SetLayoutPath ());
}
...