Zend Framework Per-moodul põhineb seaded

Autor Steven Lloyd Watkin , reede 1. jaanuar 2010 22:40

Olen loonud Järg sellele ametikohale, mis nõuab vähem konfiguratsiooni, vaata Moodul põhjal paigutus - Zend Framework .

Kui kasutate Zend Framework moodulite, selle selge, et kui näed erinevate (ala-) saitidele välja sama rakendus, mida ei pea tingimata tahavad sama skeem skriptid iga osa jaoks. Ma otsustasin minna koos järgmiste saidi struktuuri:

  / Application
     / Kontrollerid
         ...
     / Mudelid
     / Modules
         / Default
             / Kontrollerid
             / Paigutus
                 / Scripts
             / Vaatamist
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Probleem oli moodustanud paigutus skripte igale moodulile eraldi. Vastus tuli läbi kasutades Action Helper. Seadistamine paigutusega igale moodulile eraldi hõlmab kolme etappi:

  1. Application.ini (vms konfiguratsiooni setup):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / paigutusega / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / paigutusega / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / liige / paigutusega / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / paigutusega / scripts" 
  2. Loo Action Helper:
      <? Php
     / **
      * Määrab paigutus liini igale moodulile eraldi
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Alates 2010/01/01
      * /
     klassi Pro_Controller_Action_Helper_SetLayoutPath
         laieneb Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Määrab paigutus tee tugineb moodulile
          * /
         avaliku funktsiooni preDispatch ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ moodul] ['ressursid'] ['paigutus'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ moodul] ['ressursid'] ['paigutus'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("skeem")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Ja lõpuks boostrap hagi abimees:
      ...
         / **
          * Loob paigutus skripte igale moodulile eraldi
          * /
         kaitstud funktsiooni _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ("frontController ');
    	     $ Paigutus = Zend_Controller_Action_HelperBroker: addHelper (
    	         uus Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Responses to "Zend Framework Per-moodul põhineb seaded"

  1. Behrang ütleb:

    Tere esimese tänud abivalmis juhendaja, kuid öelge mulle, kus ma loob hagi helper koos nõid faili nimi?
    behrang

  2. Tere Behrang, luua meetmeid helper koos kumb nimi sulle meeldib, mul on oma "raamatukogu" koos namespace "Pro". Sa võiksid sama hästi kõne klassi SetLayoutPath "ja pane see, kus kunagi sulle meeldib, kui kood ei leia seda ja te laiendada nõutav klasside

  3. Shashi kanth ütleb:

    Tere, iam segi ajada loomise moodul konkreetse andmebaasi seaded ... Kas kellelgi on idee?

  4. Ma arvan, et see võib kergesti saavutada usign eespool muster. Esiteks, luua võimalusi oma ini faili mööda failid:

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

    Siis lihtsalt luua oma andmebaasi ühendus nagu näed (Zend_Db: tehas () vms) ja Kätkö see ära registri või seadistada see vaikimisi adapter kui kasutatakse Zend_Db_Table (Zend_Db_Table: setDefaultAdapter ()).

Jäta vastus













Panorama Theme poolt Themocracy

6 külastajaid online praegu
3 külalist, 3 eest, 0 liiget
Max Külastusi täna: 14 12:34 UTC
Selle kuu: 22 kell 2011/08/06 12:30 UTC
Sel aastal: 130 at 28-03-2011 22:40 UTC
Kogu aeg: 130 at 28-03-2011 10:40 UTC