Zend Framework pro Modul basiert Einstellungen

Von Steven Lloyd Watkin , Freitag 1. Januar 2010 10.40 Uhr

Ich habe Konfiguration erstellt eine Antwort auf diesen Beitrag weniger, die erforderlich ist, finden Sie in Modul basierten Layouts - Zend Framework .

Bei der Verwendung des Zend Framework mit Modulen, seine Hand, dass wenn Sie laufen verschiedene (Teil-) Seiten aus der gleichen Anwendung, die Sie wollen nicht unbedingt das gleiche Layout-Skripte für jeden Teil. Ich beschloss, mit den folgenden Website-Struktur gehen:

  / Anwendung
     / Controller
         ...
     / Modelle
     / Modules
         / Default
             / Controller
             / Layout
                 / Scripts
             / Ausblick
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Das Problem war die Einrichtung des Layouts Skripte auf einem pro Modul. Die Antwort kam durch Verwendung eines Action Helper. Einrichten des Layouts auf einer Pro-Modul Basis umfasst drei Schritte:

  1. Application.ini (oder eine ähnliche Konfiguration Setup):
      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 / Affiliate / layouts / scripts" 
  2. Erstellen Sie Ihre Aktion Helper:
      <? Php
     / **
      * Setzt das Layout auf einem Pfad pro Modul
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Since 2010.01.01
      * /
     Klasse Pro_Controller_Action_Helper_SetLayoutPath
         erstreckt Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Stellt Layout Pfad basierend auf Modul
          * /
         öffentliche Funktion preDispatch ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['Ressourcen'] ['Layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['Ressourcen'] ['Layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("Layout")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Und schließlich Bootstrap die Aktion Helfer:
      ...
         / **
          * Stellt Layout-Skripte auf einer Pro-Modul Basis
          * /
         geschützten Funktion _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         neue Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Responses to "Zend Framework pro Modul basiert Einstellungen"

  1. Behrang sagt:

    Hallo erster Dank für Ihr hilfreiches Tutorial, aber mir sagen, wo ich Action Helfer mit Hexe Dateinamen zu erstellen?
    Behrang

  2. Hallo Behrang, erstellen Sie die Action Helfer mit welcher Name ihr wollt, ich meine eigene "Bibliothek" mit Namespace 'Pro' haben. Sie könnten genauso gut nennen die Klasse "SetLayoutPath" und legen Sie sie, wo immer Sie wollen, vorausgesetzt, der Code kann es zu finden und erweitern Sie die benötigten Klassen

  3. Shashi Kanth sagt:

    Hallo, iam verwechseln mit der Einrichtung Modul bestimmten Datenbank-Einstellungen ... Hat jemand eine Idee?

  4. Ich denke, das könnte leicht erreicht usign dem obigen Muster sein. Erstens schaffen Optionen in der INI-Datei entlang der Dateien:

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

    Dann einfach erzeugen Sie Ihre Datenbank-Verbindung wie Sie sehen, passen (Zend_Db:: factory () oder ähnliches) und verstauen sie weg in der Registrierung oder legen Sie es als Standard-Adapter, wenn mit Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Lassen Sie eine Antwort













Panorama Thema von Themocracy

5 Besucher jetzt online
3 Gäste, 2 Bots, 0 Mitglieder
Max Besucher heute: 13 um 12:15 Uhr UTC
Diesen Monat: 26 am 2011.07.05 00.35 UTC
Dieses Jahr: 130 an 28-03-2011 10.40 UTC
Insgesamt: 130 an 28-03-2011 22.40 UTC