Qafas Zend Per Settings Layout Modulu - Follow Up

Permezz Watkin Lloyd Steven , Frar Tlieta 16 2010 20:48

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.

2 Responses to "Zend Qafas Per Settings Layout Modulu - Follow Up"

  1. Behrang says:

    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

  2. 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

Leave a Reply













Tema Panorama minn Themocracy

10 viżitaturi online issa
6 mistednin, 4 bots, 0 membri
viżitaturi llum Max: 24 fuq 00:36 UTC
Dan ix-xahar: 26 fil 2011/07/05 12:35 UTC
Din is-sena: pm UTC 130 fil 28-03-2011 10:40
Il-ħin kollu: pm UTC 130 fil 28-03-2011 10:40