Zend Qafas Per Modulu settings bbażati
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 * / protett funzjoni _initLayoutHelper () { $ Dan> 'bootstrap ("frontController"); $ Tqassim = Zend_Controller_Action_HelperBroker :: addHelper ( ġdid Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































