Zend Framework-Modulo base di impostazioni Per

Con Steven Watkin Lloyd , Venerdì 1 Gennaio 2010 22:40

Ho creato un seguito di questo post, che richiede meno di configurazione, vedere il modulo base Layout - Zend Framework .

Quando si utilizza il framework Zend con i moduli, i suoi ovvio che se si sta eseguendo vari (sub-) siti fuori la stessa domanda che non necessariamente vogliono lo stesso script di configurazione per ciascuna parte. Ho deciso di andare con la struttura seguente sito:

  / Applicazione
     / Controller
         ...
     / Modelli
     / Modules
         / Default
             / Controller
             / Layout
                 / Scripts
             / Viste
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Il problema era la configurazione degli script di layout in base al modulo. La risposta è arrivata attraverso l'uso di un programma di supporto azione. Impostazione del layout in base al modulo prevede tre passaggi:

  1. Application.ini (o setup di configurazione simile):
      admin.resources.layout.layoutPath APPLICATION_PATH = "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath APPLICATION_PATH = "/ modules / default / layouts / scripts"
     member.resources.layout.layoutPath APPLICATION_PATH = "/ modules / member / layouts / scripts"
     affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ modules / affiliati / layouts / scripts" 
  2. Crea il tuo Action Helper:
      <? Php
     / **
      * Imposta il percorso di layout in base al modulo
      *
      * @ Autore Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Dal 2010/01/01
      * /
     Pro_Controller_Action_Helper_SetLayoutPath classe
         estende Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Consente di impostare il percorso di layout basato sul modulo
          * /
         preDispatch funzione pubblica ()
         {
        	 $ Module = getRequest $ this-> () -> getModuleName ();
    
    	     if ($ bootstrap getActionController = $ this-> ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ GetOptions bootstrap-> ();
    
    	         if (isset ($ config ['layout'] [$ modulo] ['risorse'] ['layoutPath'])) {
    	             LayoutPath $ =
    	                  $ Config [$ modulo] ['layout'] ['risorse'] ['layoutPath'];
    	             getActionController $ this-> ()
    	                  -> GetHelper ('layout')
    	                  - SetLayoutPath> ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. E, infine boostrap il figurante azione:
      ...
         / **
          * Imposta gli script di configurazione in base al modulo
          * /
         funzione _initLayoutHelper protetto ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         nuovo Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Responses to "Zend Framework impostazioni per modulo base"

  1. Behrang ha detto:

    Ciao grazie per la tua prima utile tutorial, ma mi dica dove posso creare un'azione di supporto con il nome del file strega?
    Behrang

  2. Ciao Behrang, creare il figurante azione con qualsiasi nome che ti piace, io ho la mia 'biblioteca', con spazio dei nomi 'Pro'. Si potrebbe benissimo chiamare 'SetLayoutPath' la classe e metterlo dove mai volete, a condizione che il codice può trovare e si estendono le classi richieste

  3. Kanth Shashi ha detto:

    Ciao, iam confusa con la creazione del modulo le impostazioni del database specifico ... qualcuno ha un'idea?

  4. Penso che questo potrebbe essere facilmente raggiunto usign il modello di cui sopra. In primo luogo, creare delle opzioni nel file ini lungo le file di:

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

    Poi semplicemente generare la vostra connessione al database, come si vede in forma (Zend_Db:: factory () o simili) e stash via nel Registro di sistema o impostarla come scheda predefinita se si utilizza Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Lascia un commento













Tema di Panorama Themocracy

5 visitatori online
4 persone, 1 bot, 0 utenti
Max visitatori oggi: 26 alle 00:46 UTC
Questo mese: 26 alle 2011/07/05 12:35 UTC
Questo anno: 130 al 28-03-2011 22:40 UTC
Tutti i tempi: 130 al 28-03-2011 10:40 UTC