Zend Framework, Per-modulis pagrįstas nustatymus

Iki Steven Lloyd Watkin , penktadienis 1 Sau 2010 22:40

Aš sukūriau followup į šį postą, kurios reikalauja mažiau konfigūracijos, žr modulis pagrįstą išdėstymą - Zend Framework .

Kai naudojate Zend Framework su moduliais, jos akivaizdu, kad jei jūs naudojate įvairius (sub-) svetaines ne ta pati paraiška jūs nebūtinai nori to paties išdėstymo scenarijus kiekvienai daliai. Aš nusprendė eiti su šiais svetainės struktūrą:

  / Taikymas
     / Valdikliai
         ...
     / Modelių
     / Moduliai
         / Default
             / Valdikliai
             / Išdėstymas
                 / Scripts
             / Nuomonės
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problema buvo sukurti maketą scenarijus už modulio pagrindu. Atsakymas atėjo naudodamos veiksmų Helper. Įsteigti maketai, kiekvienai modulio pagrindas apima tris žingsnius:

  1. Application.ini (ar panašios konfigūracijos nustatymų):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modulių / admin / maketai / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modulių / default / maketai / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modulių / member / maketai / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modulių / filialo / maketai / scripts" 
  2. Sukurti savo veiksmų Helper:
     <? Php / ** * Nustato išdėstymo kelią už modulio pagrindas * * @ author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ nes 2010/01/01 * / klasė Pro_Controller_Action_Helper_SetLayoutPath tęsiasi Zend_Controller_Action_Helper_Abstract {/ ** * Nustato išdėstymas kelias pagrįstas modulis * / public function preDispatch () {$ modulis = $ this-> getRequest () -> getModuleName (); if ($ įkrovos = $ this-> getActionController () -> getInvokeArg ("Kilpa" )) {$ config = $ Kilpa-> getOptions (); if (isset ($ config [$ modulis] [ištekliai '] [' išdėstymą '] [' layoutPath '])) {$ layoutPath = $ config [$ modulis ] ["ištekliai"] ["išdėstymas"] ["layoutPath ']; $ this-> getActionController () -> getHelper (" maketas ") -> setLayoutPath ($ layoutPath);}}}} 
  3. Ir galiausiai boostrap veiksmų pagalbininkas:
      ...
         / **
          * Nustato išdėstymo scenarijus už modulio pagrindas
          * /
         Saugomų funkcija _initLayoutHelper ()
    	 {
    	     $ This-> Kilpa ("frontController ');
    	     $ Išdėstymo = Zend_Controller_Action_HelperBroker: addHelper (
    	         naujas Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Responses to "Zend Framework, Per-modulis pagrįstas parametrai"

  1. Behrang sako:

    Labas pirmą ačiū už jūsų naudinga pamoka, bet pasakyk man, kur galiu sukurti veiksmų pagalbininkas su ragana failo vardas?
    behrang

  2. Labas Behrang, sukurti veiksmų pagalbininkas bet kurį pavadinimas jums patinka, aš turiu savo "biblioteką" su vardų "Pro". Jūs galite taip pat lengvai paskambinti klasė "SetLayoutPath" ir įdėti jį, jei kada nors jums patinka, jei kodą gali rasti, kad ir jūs pratęsti reikalingas klases

  3. Shashi kanth sako:

    Sveiki, Iam painioti su įsteigimo modulio duomenų bazės nustatymai ... Ar kas nors turi idėjų?

  4. Manau, kad tai galėtų lengvai pasiekti usign pirmiau modelis. Pirma, sukurkite puslapį savo ini failo palei failus:

    moduleName.db.user = "
    moduleName.db.password = "
    moduleName2.db.user = "
    ... Ir tt ...

    Tada tiesiog sukurti savo duomenų bazę, kaip jums atrodo tinkama (Zend_Db:: factory () ar panašiai) ir Atlicināt ji toli registre arba nustatyti ją kaip numatytąją adapteris, jei naudojate Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Leave a Reply













"Panorama" tema, padarytais Themocracy

7 svečiai dabar
5 svečiai, 2 Robotai, 0 nariai
Max Lankytojų šiandien: 23 j., 04:19 UTC
Šį mėnesį: 26 j., 2011/07/05 12:35 UTC
Šiais metais: 130 metu 28-03-2011 22:40 UTC
Visas laikas: 130 metu 28-03-2011 10:40 UTC