Zend Framework Per-Modul postavke temeljene na

By Steven Lloyd Watkin , petak 1 siječanj 2010 10:40

Napravio sam udarac na ovaj post koji zahtijeva manje konfiguraciji, molimo pogledajte Modul temelju izgleda - Zend Framework .

Kada koristite Zend Framework s modulima, očito je da ako radite različite (sub-) mjesta off isti zahtjev ne nužno žele isti izgled skripte za svaki dio. Odlučio sam ići sa sljedećim site struktura:

  / Primjena
     / Kontroleri
         ...
     / Modela
     / Modula
         / Default
             / Kontroleri
             / Izgled
                 / Skripte
             / Pogleda
                 / Skripte
         / AnotherModule
             ...
     / Skripte

Problem je postavljanje izgleda skripte na po-modul osnovi. Odgovor je došao kroz korištenje Akcija Helper. Postavljanje izgleda na po-modul osnovi uključuje tri koraka:

  1. Application.ini (ili sličnih konfiguracija setup):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / raspored / skripti"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / raspored / skripti"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / član / raspored / skripti"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / raspored / skripti" 
  2. Kreirajte svoj Akcija Helper:
      <? Php
     / **
      * Postavlja izgled put na po-modul osnovi
      *
      * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Jer 2010/01/01
      * /
     razred Pro_Controller_Action_Helper_SetLayoutPath
         proteže Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Postavlja izgled put se temelji na modulu
          * /
         javnu funkciju preDispatch ()
         {
        	 $ Modul = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['resursa'] ['izgled'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['resursa'] ['izgled'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('izgled')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. I na kraju boostrap djelovanje pomagača:
      ...
         / **
          * Postavlja izgled skripte na po-modul osnovi
          * /
         zaštićena funkcija _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Izgleda = Zend_Controller_Action_HelperBroker:: addHelper (
    	         Novi Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Reakcija to "Zend Framework Per-Modul se temelji postavke"

  1. Behrang kaže:

    Bok prvi hvala za tvoj koristan udžbenik, ali reci mi gdje sam stvoriti akciju pomagač s vještica ime datoteke?
    behrang

  2. Bok Behrang, stvoriti akciju pomagač s koje god ime vam se sviđa, imam svoje 'knjižnica' sa namespace 'Pro'. Vi samo mogao tako lako nazvati klase 'SetLayoutPath' i staviti ga gdje god želite, pod uvjetom da broj mogu ga pronaći i proširiti potrebne klase

  3. Shashi kanth kaže:

    Bok, iam zbunjeni s postavljanjem modula specifičnih baza podataka postavke ... Se bilo tko imati ideju?

  4. Mislim da je ovo lako mogao biti postignut usign iznad uzorak. Prvo, stvoriti mogućnosti u svom ini datoteke uz datoteke:

    moduleName.db.user = "
    moduleName.db.password = "
    moduleName2.db.user = "
    ... Itd ...

    Zatim jednostavno generirati vaše veze baze podataka kao što vidite stane (Zend_Db:: tvornica () ili slično) i to skriti daleko u registar ili ga postaviti kao zadani adapter ako koristite Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Dopust jedan Odgovor













Panorama Theme by Themocracy

6 posjetitelja online aukciji
4 gosti, 2 robota, 0 clanova
Max posjetitelja danas: 14 u 3:51 UTC
Ovaj mjesec: 26 at 2011/07/05 12:35 UTC
Ove godine: 130 u 28-03-2011 10:40 UTC
Sva vremena: u 130 28-03-2011 10:40 UTC