Qafas Zend Per Settings Layout Modulu - Follow Up
Bħala segwitu għall-post preċedenti tiegħi dwar kull bbażati settings tqassim modulu għall Zend Qafas , stajt Aġġornata l-kodiċi li jeħtieġu konfigurazzjoni inqas minn qabel (mhux li hija meħtieġa aktar li ftit linji fil-konfigurazzjoni l-applikazzjoni tiegħek!).
Għal darb'oħra aħna jagħmlu użu ta ' Zend Kontrollur Azzjoni helper tinvokaha mill-bootstrap kif ġej:
/ **
* Twaqqaf skripts tqassim fuq bażi per-modulu ta '
* /
protetti funzjoni _initLayoutHelper ()
{
$ Dan il-> bootstrap ("frontController");
$ Tqassim = Zend_Controller_Action_HelperBroker:: addHelper (
Pro_Controller_Action_Helper_SetLayoutPath ġodda (APPLICATION_PATH));
}
Kważi eżattament l-istess bħal qabel ħlief dan iż-żmien aħna jgħaddu l-APPLICATION_PATH kostanti fil-kostruttur bħala passaġġ bażi tagħna.
Mbagħad il-helper azzjoni kontrollur innifsu issa jidher kif ġej:
/ ** * Settijiet-passaġġ tqassim fuq bażi ta 'kull modulu * @ * Awtur Lloyd Watkin * @ Peress 16/02/2010 @ * Pakkett Pro @ * Subpackage Controller_Action_Helper * / / ** * Settijiet-passaġġ tqassim fuq bażi ta 'kull modulu * @ * Awtur Lloyd Watkin * @ Peress 16/02/2010 @ * Pakkett Pro @ * Subpackage Controller_Action_Helper * / klassi Pro_Controller_Action_Helper_SetLayoutPath testendi Zend_Controller_Action_Helper_Abstract { / ** * Passaġġ Base * * @ String var * / protetti $ _path; / ** * Ibni * @ * Param string $ triq * / funzjoni pubblika __construct ($ passaġġ) { setBasePath $ dan il-> ($ passaġġ); } / ** * Passaġġ bażi Set * @ * Param string $ triq * / pubbliku funzjoni setBasePath ($ passaġġ) { jekk (is_string ($ passaġġ) |! | vojta ($ passaġġ)) { tarmi Eċċezzjoni ġdida ("string eżentati għal passaġġ bażi"); } $ Dan il-> _path = $ triq; } / ** * Niżżel l-passaġġ bażi * sekwenza * ritorn @ * / protetti funzjoni _getBasePath () { jekk (is_null ($ dan il-> _path)) { jekk (! definiti ("APPLICATION_PATH")) { tarmi Eċċezzjoni ġdida ("passaġġ Bażi ma jistax jiġi ddeterminat"); } $ Dan il-> _path = APPLICATION_PATH; } ritorn _path $ dan il->; } / ** * Tqassim Settijiet triq ibbażati fuq il-modulu * / pubbliku funzjoni preDispatch () { $ Modulu = preg_replace ( "/ [^ AZ] / i",'', $ dan il-> getRequest () -> getModuleName () ); jekk ($ bootstrap = getActionController $ dan il-> () - GetInvokeArg> ("bootstrap")) { $ Ħsieb = getResource $ bootstrap-> ("għan"); $ LayoutPath = _getBasePath $ dan il-> (). "/ Moduli / {$ modulu} / presentazzjonijiet / skripts /"; / * Jekk direttorju tqassim jeżisti mbagħad japplika dan, inkella biss jaqgħu * Lura fuq l-inadempjenza * / jekk (is_dir ($ layoutPath)) { getActionController $ dan il-> () - GetHelper> ("tqassim") - SetLayoutPath> ($ layoutPath); $ Għan-> headLink () -> appendStylesheet ( "/ Stili / {$ modulu} / style.css" ); } } } }
Innota l-mogħdija tal-passaġġ bażi tagħna (cf. APPLICATION_PATH) fil-kostruttur, aħna għandna wkoll getter u stabbilaturi għall-passaġġ bażi. B'differenza mill-verżjoni preċedenti tal-kodiċi jekk il-passaġġ taqsim ma teżistix allura l-kodiċi se jaqa 'lura l-passaġġ tqassim default. Jekk il-passaġġ bażi ma jkunx stabbilit se tipprova tiddetermina l-passaġġ mill-bażi APPLICATION_PATH kostanti, inkella eċċezzjoni jintefa. Stajt ukoll cheekily jintefa 'fil-karta stil modulu bbażati fuq għall-miżura tajba
It-tqassim ibbażata modulu hija determinata minn jekk il-passaġġ iskrittura tqassim jeżisti (ovvjament dan il-metodu jista 'jinbidel faċilment). Dan ma żid ftit overhead mill-setup application.ini (madankollu, jekk il-passaġġ tqassim teżisti PHP se cache-riżultat għall-prestazzjoni *) imma fl-ritorn inti jiksbu l-konvenjenza miżjud ta 'aktar faċilment twaqqa fil-moduli ġodda.
That's, mhux wisq differenti, imma inti m'għandekx bżonn li tiżdied id-dħul konfigurazzjoni l-ġdida kull darba li tixtieq iżżid modulu l-ġdid:)
* Biex ċar dan cache (jekk meħtieġ) tuża l- clearstatcache funzjoni.


















































Hi, jekk jogħġbok għidli fejn biex joħolqu Pro_Controller_Action_Helper_SetLayoutPath klassi li isem fajl
I'm newbie fil Zend.
grazzi
Hi Behrang, joħolqu l-helper azzjoni ma 'kwalunkwe isem li tixtieq, għandi tiegħi stess "librerija" ma namespace "Pro". Inti tista 'biss bħala faċilment sejħa "SetLayoutPath" il-klassi u poġġih fejn qatt li tixtieq, sakemm il-kodiċi jistgħu jsibuha u inti testendi l-klassijiet meħtieġa