Zend Framework-Modulo base di impostazioni Per
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:
- 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"
- 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); } } } }
- 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 ()); } ...


















































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
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
Ciao, iam confusa con la creazione del modulo le impostazioni del database specifico ... qualcuno ha un'idea?
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 ()).