Bħala segwitu għall-post preċedenti tiegħi dwar settings għal kull modulu tqassim bbażati għall Zend Qafas , stajt aġġornati l-kodiċi li jeħtieġu konfigurazzjoni inqas minn qabel (mhux li hija meħtieġa aktar li ftit linji fl-konfigurazzjoni l-applikazzjoni tiegħek!).
Kompli qari "Zend Qafas Per Settings Layout Modulu - Follow Up" »
Artikoli , Computing , PHP , Web Programmazzjoni , Zend Qafas |
azzjoni , kontrollur , qafas , helper , tqassim , modulu , PHP , Zend , Zend Qafas
Stajt ħolqot follow għal din il-kariga li teħtieġ konfigurazzjoni inqas, jekk jogħġbok ara Layout Modulu Ibbażat - Zend Qafas .
Meta jintuża l- qafas Zend ma moduli, ovvji tagħha li jekk int taħdem varji (sub-) siti off l-istess applikazzjoni ma neċessarjament jixtiequ l-istess skripts tqassim għal kull parti. I iddeċidew li jmorru ma 'l-istruttura tas-sit li ġej:
/ Applikazzjoni
/ Kontrolluri
...
/ Mudelli
/ Moduli
/ Nuqqas
/ Kontrolluri
/ Tqassim
/ Skripts
/ Fehmiet
/ Skripts
/ AnotherModule
...
/ Skripts
Il-problema kienet twaqqif-iskripts tqassim fuq bażi ta 'kull modulu. It-tweġiba daħal permezz użu ta 'helper' Azzjoni. Twaqqif-taqsim fuq bażi ta 'kull modulu jinvolvi tliet stadji:
- Application.ini (jew setup konfigurazzjoni simili):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ moduli / admin / presentazzjonijiet / skripts"
default.resources.layout.layoutPath = APPLICATION_PATH "/ moduli / default / presentazzjonijiet / skripts"
member.resources.layout.layoutPath = APPLICATION_PATH "/ moduli / membru / taqsim / skripts"
affiliate.resources.layout.layoutPath = l APPLICATION_PATH "/ moduli / affiljat / taqsim / skripts"
- Oħloq helper Azzjoni tiegħek:
<? PHP
/ **
* Settijiet-passaġġ tqassim fuq bażi ta 'kull modulu
*
* @ Awtur Lloyd Watkin <lloyd@evilprofessor.co.uk>
* @ Peress 2010/01/01
* /
klassi Pro_Controller_Action_Helper_SetLayoutPath
testendi Zend_Controller_Action_Helper_Abstract
{
/ **
* Settijiet tqassim triq ibbażati fuq modulu
* /
pubbliku funzjoni preDispatch ()
{
$ Modulu = $ dan-> getRequest () -> getModuleName ();
jekk ($ = $ dan bootstrap-> getActionController ()
-> GetInvokeArg ("bootstrap")) {
$ Konfigurazzjoni = $ bootstrap-> getOptions ();
jekk (isset ($ konfigurazzjoni [$ modulu] ["riżorsi"] ["tqassim"] ["layoutPath"])) {
$ LayoutPath =
[Modulu $] $ konfigurazzjoni ["riżorsi"] ["tqassim"] ["layoutPath"];
$ Dan-> getActionController ()
-> GetHelper ("format")
-> SetLayoutPath ($ layoutPath);
}
}
}
} - U fl-aħħar boostrap-helper-azzjoni:
... / *** Twaqqaf skripts tqassim fuq bażi ta 'kull modulu * / protetti funzjoni _initLayoutHelper () {$ dan-> bootstrap ("frontController"); $ tqassim = Zend_Controller_Action_HelperBroker :: addHelper (ġdid Pro_Controller_Action_Helper_SetLayoutPath ());} .. .