Como seguimento ao meu post anterior sobre as opcións de deseño por módulo base para o Zend Framework , eu atualizei o código para esixir menos configuración que antes (non que fose necesario máis que unhas liñas na súa configuración de aplicación!).
Continúe lendo "Zend Framework per opcións de deseño do Módulo - Follow Up '»
Artigos , computación , PHP , Programación Web , Zend Framework |
acción , controlador , cadro , ajudante , de deseño , módulo , PHP , Zend , Zend Framework
Eu creei unha continuación a este post, que require menos configuración, consulte Esquema de Módulo Based - Zend Framework .
Usando o Zend Framework con módulos, a súa evidente que se está executando varios (sub-) sitios fóra do mesmo programa que non quere necesariamente os mesmos guións de deseño para cada parte. Eu decidimos ir coa estrutura seguinte sitio web:
/ Aplicación
/ Controladores
...
/ Modelos
/ Modules
/ Default
/ Controladores
/ Deseño
/ Scripts
/ Views
/ Scripts
/ AnotherModule
...
/ Scripts
O problema foi a creación dos scripts de deseño nunha base por módulo. A resposta veu a través da utilización de un auxiliar de acción. Configurar os esquemas nunha base por módulo implica tres pasos:
- Application.ini (ou setup de configuración similar):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / esquemas / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / esquemas / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ módulos / membro / esquemas / scripts "affiliate.resources.layout.layoutPath = APPLICATION_PATH" / modules / afiliados / esquemas / scripts "
- Crea o teu axudante de acción:
<? PHP
/ **
* Define o camiño de deseño nunha base por módulo
*
* @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ Since 2010/01/01
* /
clase Pro_Controller_Action_Helper_SetLayoutPath
estende Zend_Controller_Action_Helper_Abstract
{
/ **
* Camiño Esquema define a base do módulo
* /
preDispatch función pública ()
{
$ Module = $ this-> GetRequest () -> getModuleName ();
se (bootstrap $ = $ this-> getActionController ()
-> GetInvokeArg ("bootstrap")) {
$ Config = bootstrap-> $ getOptions ();
if (isset ($ config [$ módulo] ['recursos'] ['esquema'] ['layoutPath'])) {
$ LayoutPath =
[Module $] $ config ['recursos'] ['esquema'] ['layoutPath'];
$ This-> getActionController ()
-> GetHelper ('layout')
-> SetLayoutPath ($ layoutPath);
}
}
}
} - E, por último boostrap o auxiliar de acción:
...
/ **
* Define os scripts de deseño nunha base por módulo
* /
protexido función _initLayoutHelper ()
{
$ This-> inicio ("frontController ');
$ Deseño = Zend_Controller_Action_HelperBroker :: addHelper (
nova Pro_Controller_Action_Helper_SetLayoutPath ());
}
...