Zend Framework Per-Modulul setările de bază

Prin Watkin Lloyd Steven , vineri o ianuarie 2010 22:40

Am creat o urmărire la acest post care necesită o configuraţie mai puţin, vă rugăm să consultaţi Modulul Bazat Aspect - Zend Framework .

Când utilizaţi Zend Framework cu module, este evident că, dacă rulaţi diferite (sub-) site-uri de pe aceeaşi cerere nu doriţi neapărat aceeaşi script aspect pentru fiecare parte. Am decis să merg cu structura site-ului următoarele:

  / Aplicarea
     / Controlere
         ...
     / Modele
     / Module
         / Default
             / Controlere
             / Layout
                 / Script-uri
             / Opinii
                 / Script-uri
         / AnotherModule
             ...
     / Script-uri

Problema a fost de înfiinţare a script-uri aspect pe o bază per-modul. Răspunsul a venit prin utilizarea unui Helper de acţiune. Configurarea machete pe o bază per-modul implică trei etape:

  1. Application.ini (sau setup configuraţie similară):
      admin.resources.layout.layoutPath APPLICATION_PATH = "/ module / admin / machete / script-uri"
     = APPLICATION_PATH default.resources.layout.layoutPath "/ module / default / machete / script-uri"
     = APPLICATION_PATH member.resources.layout.layoutPath "/ module / membru / machete / script-uri"
     = APPLICATION_PATH affiliate.resources.layout.layoutPath "/ module / afiliat / machete / script-uri" 
  2. Creaţi-vă de acţiune Helper:
      <? Php
     / **
      * Seteaza calea aspect pe o bază per-modul
      *
      * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Deoarece 2010-01-01
      * /
     clasa Pro_Controller_Action_Helper_SetLayoutPath
         extinde Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Seturi de cale layout bazat pe modul
          * /
         preDispatch funcţia publică ()
         {
        	 Module = $ getRequest $ this-> () -> getModuleName ();
    
    	     if ($ bootstrap = getActionController $ this-> ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ getOptions bootstrap-> ();
    
    	         if (isset ($ config ['aspectul'] [$ modul] ['resursele'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ modulul] ['layout'] ['resursele'] ['layoutPath'];
    	             getActionController $ this-> ()
    	                  -> GetHelper ("layout")
    	                  - SetLayoutPath> ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Boostrap şi în cele din urmă helper de acţiune:
      ...
         / **
          * Seturi de script-uri layout-te pe o bază per-modul
          * /
         _initLayoutHelper funcţia protejate ()
    	 {
    	     $ This-> bootstrap ("frontController ');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         noi Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Responses to "Zend Framework setările Per-Modulul bazate pe"

  1. Behrang spune:

    Max se multumeasca in primul tutorial util pentru dvs., dar spune-mi unde am crea ajutor de acţiune cu nume de fişier vrăjitoare?
    behrang

  2. Bună Behrang, crea ajutor de acţiune cu oricare nume doriţi, am propria mea "biblioteca" cu spaţiul de nume "Pro". Ai putea la fel de uşor de apel "SetLayoutPath" de clasă şi a pus-o vreodată în cazul în care vă place, cu condiţia ca acest cod poate găsi şi va extinde clasele necesare

  3. kanth Shashi spune:

    Bună, iam confundat cu înfiinţarea modul de setări specifice de baze de date ... Are cineva o idee?

  4. Cred că acest lucru ar putea fi uşor de atins usign modelul de mai sus. În primul rând, de a crea opţiuni în fişierul ini de-a lungul fişierele de:

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

    Apoi, pur şi simplu generaţi conexiunea de date ca tu de cuviinţă (Zend_Db:: fabrica de () sau similare) şi ascunde-l departe în registru sau setaţi-o ca adaptorul implicit dacă se utilizează Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Plecare un Reply













Panorama Tematica de Themocracy

3 vizitatori acum online
2 vizitatori, 1 roboţii, 0 membrii
Max vizitatori azi: 16 la 01:13 UTC
În această lună: 26 la 07-05-2011 12:35 UTC
În acest an: 130 la 28-03-2011 22:40 UTC
Tot timpul: 130 la 28-03-2011 10:40 UTC