Zend Framework per ajustos de disseny del mòdul - Seguiment

Per Watkin Lloyd Steven , dimarts 16 febrer 2010 20:48

Com a continuació al meu anterior post sobre la configuració de cada mòdul de disseny basat en Zend Framework , he actualitzat el codi que requereixen menys de configuració que abans (no és que es requereix més que unes poques línies en la configuració de la seva aplicació!).

Una vegada més fem ús d'un controlador de Zend Acció d'Ajuda que la invocació de l'arrencada de la següent manera:

     / **
      * Estableix seqüències d'ordres de disseny en un mòdul per a cada
      * /
     _initLayoutHelper funció protegida ()
	 {
	     $ This-> arrencada ('FrontController');
	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
	         nova Pro_Controller_Action_Helper_SetLayoutPath (APPLICATION_PATH));
	 }

Gairebé exactament el mateix que abans però aquesta vegada passem el APPLICATION_PATH constant en el constructor de la base del nostre camí.

A continuació, l'ajudant d'acció del controlador s'espera ara de la següent manera:

 / **
  * Estableix la ruta de disseny en funció de cada mòdul
  *
  * @ Autor Lloyd Watkin
  * @ Des 2010.02.16
  * @ Paquet Pro
  * @ Subpaquete Controller_Action_Helper
  * /

 / **
  * Estableix la ruta de disseny en funció de cada mòdul
  *
  * @ Autor Lloyd Watkin
  * @ Des 2010.02.16
  * @ Paquet Pro
  * @ Subpaquete Controller_Action_Helper
  * /
 Pro_Controller_Action_Helper_SetLayoutPath classe
     s'estén Zend_Controller_Action_Helper_Abstract
 {
	 / **
	  * Base de ruta
	  *
	  * @ Var cadena
	  * /
	 protegits $ _path;

	 / **
	  * Construir
	  *
	  * @ Param string $ ruta
	  * /
	 funció pública __construct ($ path)
	 {
	     setBasePath $ this-> ($ path);
	 }

	 / **
	  * Establir ruta de la base
	  *
	  * @ Param string $ ruta
      * /
	 setBasePath funció pública ($ path)
	 {
		 if (is_string ($ path) |! | empty ($ ruta)) {
			 throw new Exception ('cadena exceptuats de ruta de la base');
		 }
		 $ This-> _path = $ ruta;
	 }

	 / **
	  * Obtenir la ruta d'accés base
	  *
	  * @ Cadena tornada
	  * /
	 _getBasePath funció protegida ()
	 {
		 if (is_null ($ this-> _path)) {
			 if (! define ('APPLICATION_PATH')) {
				 throw new Exception ("ruta de la base no es pot determinar ');
			 }
			 $ This-> _path APPLICATION_PATH =;
		 }
		 tornar _path $ this->;
	 }

     / **
      * Jocs de ruta de disseny basada en el mòdul
      * /
     preDispatch funció pública ()
     {
    	 $ Module = preg_replace (
    	     '/ [^ AZ] / i','', $ this-> getRequest () -> getModuleName ()
    	 );

	     if ($ arrencada getActionController = $ this-> ()
	                        - GetInvokeArg> ('arrencada')) {

	         veure = $ $ arrencada-> GetResource ('view');
	         layoutPath _getBasePath $ = $ this-> ().
	             "/ Modules / {$ mòdul} / layouts / scripts /";

	         / * Si hi ha la disposició de la guia a continuació, aplicar, en cas contrari es cauen
	          * De nou en el valor predeterminat
	          * /
	         if (is_dir ($ layoutPath)) {
	             getActionController $ this-> ()
	                  - GetHelper> ('layout')
	                  - SetLayoutPath> ($ layoutPath);
	             $ View-> headLink () -> appendStylesheet (
	                 "/ Estils / {$ mòdul} / style.css"
	             );
	         }
    	 }
     }
 }

Tingueu en compte el pas de la nostra ruta d'accés base (cf. APPLICATION_PATH) al constructor, també tenim un getter i setter per la ruta d'accés base. A diferència de la versió anterior del codi si la ruta dels dissenys no existeix, llavors el codi caurà de nou el camí traçat per defecte. Si la ruta de la base no s'ha establert que es tracti de determinar la ruta de la base de l'APPLICATION_PATH constant, en cas contrari es produeix una excepció. També he trobat descaradament en un full d'estils mòdul basat en una bona mesura

El disseny del mòdul base es determina si la trajectòria de seqüència de comandaments de disseny existeix (òbviament aquest mètode es pot canviar fàcilment). Això li afegeix una mica de sobrecàrrega de la instal lació application.ini (no obstant això, si el camí traçat existeix PHP a la memòria cau el resultat per al funcionament *), però a canvi s'obté la major comoditat de més fàcil caure en nous mòduls.

Això és tot, no és molt diferent, però no cal afegir una entrada nova configuració cada vegada que vulgui afegir un mòdul nou:)

* Per esborrar el caché (si cal) l'ús de la clearstatcache funció.

2 Respostes a "Zend Framework per ajustos de disseny del mòdul - Seguiment"

  1. Behrang diu:

    Hola, si us plau, digues-me on crear Pro_Controller_Action_Helper_SetLayoutPath classe amb la qual el nom del fitxer
    Sóc novell en Zend.
    gràcies

  2. Hola Behrang, crear l'ajudant d'acció amb qualsevol nom que vulgui, jo tinc la meva pròpia "biblioteca" amb l'espai de noms 'Pro'. Vostè podria fàcilment anomenada 'SetLayoutPath "la classe i posar-la allà on t'agrada, sempre que el codi es pot trobar i ampliar les classes obligatòries

Deixa una resposta













Panorama Tema per Themocracy

4 visitants en línia ara
3 persones, contra els robots d'1, 0 usuari
Nombre màxim de visitants d'avui: 10 a les 03:01 UTC
Aquest mes: 26 a 2011.07.05 12:35 UTC
Aquest any: 130 en 2011.03.28 22:40 UTC
Tot el temps: 130 en 2011.03.28 22:40 UTC