Zend Framework Per-moduuli perustuu asetukset

By Steven Lloyd Watkin perjantaina 01 tammikuu 2010 22:40

Olen luonut seurannassa tähän tekstiin, joka vaatii vähemmän kokoonpano löytyy moduuli perustuu Layout - Zend Framework .

Kun käytät Zend Framework moduulit, sen selvää, että jos käytät eri (ala-) sivustot pois samaa hakemusta et välttämättä halua samaa asettelua skriptit kutakin osaa. Päätin mennä seuraava sivuston rakenteen:

  / Sovellus
     / Säätimet
         ...
     / Mallit
     / Modules
         / Default
             / Säätimet
             / Layout
                 / Scripts
             / Katselua
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Ongelma oli perustamassa layout skriptejä per-moduulin perusteella. Vastaus tuli hyödyntämällä Action Helper. Perustamalla layoutin per-moduuli perusteella kuuluu kolme vaihetta:

  1. Application.ini (tai vastaava kokoonpano setup):
      admin.resources.layout.layoutPath = APPLICATION_PATH "modules / admin / kuvitus / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "modules / default / kuvitus / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "modules / jäsen / kuvitus / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "modules / affiliate / kuvitus / scripts" 
  2. Luo Toimi Helper:
      <? Php
     / **
      * Asettaa layout polku kohti moduuli perusteella
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Alkaen 1.1.2010
      * /
     luokka Pro_Controller_Action_Helper_SetLayoutPath
         ulottuu Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Asettaa layout polku perustuu moduuli
          * /
         julkista tehtävää preDispatch ()
         {
        	 $ Moduuli = $ this-> GetRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ moduuli] ['varat'] ['ulkoasu'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ moduuli] ['varat'] ['ulkoasu'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper (layout)
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Ja lopuksi boostrap toiminta helper:
      ...
         / **
          * Asettaa layout skriptejä per-moduuli perusteella
          * /
         suojatun toiminnon _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap (frontController ");
    	     $ Layout = Zend_Controller_Action_HelperBroker: addHelper (
    	         uusi Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Vastaus jotta "Zend Framework Per-moduuli perustuu asetukset"

  1. Behrang sanoo:

    Hei ensimmäinen kiitos hyvä opetusohjelma, mutta kerro minulle, missä voin luoda toiminta auttaja kanssa noita tiedoston nimi?
    behrang

  2. Hei Behrang, luoda toiminta auttaja ja kumpi haluamasi nimen, minulla on oma "kirjasto", jossa nimiavaruus "Pro". Voisit yhtä hyvin kutsua luokan SetLayoutPath "ja laita se minne haluat, jos koodi löytää sen ja voit laajentaa tarvittavat luokat

  3. Shashi Kanth sanoo:

    Hei, IAM sekoittaa perustaa moduulin tiettyyn tietokantaan asetukset ... Onko kellään ideoita?

  4. Mielestäni tämä voitaisiin helposti saavuttaa usign edellä kuvio. Ensinnäkin, luoda vaihtoehtoja oman ini-tiedoston pitkin tiedostot:

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

    Sitten vain luoda tietokantayhteyden kuten näette (Zend_Db: tehdas () tai vastaava) ja piilottelevat sitä pois rekisteristä tai asettaa sen oletuksena sovitin, jos käytät Zend_Db_Table (Zend_Db_Table: setDefaultAdapter ()).

Jätä vastaus













Panorama Teema Themocracy

5 vierailijaa nyt
3 vierasta, 2 vastaan, 0 jäsentä
Max kävijöitä tänään: 23 klo 04:19 UTC
Tässä kuussa: 26 at 05.7.2011 00:35 UTC
Tänä vuonna: 130 at 28-03-2011 22:40 UTC
Kaikki aika: 130 at 28-03-2011 22:40 UTC