HTTP/1.0 200 OK Accept-Ranges: none Content-Location: http://www.evilprofessor.co.uk/227-zend-framework-per-module-based-settings/ Content-Type: text/html; charset=UTF-8 Date: Wed, 11 May 2011 06:08:02 GMT X-Frame-Options: ALLOWALL Set-Cookie: PREF=ID=cb7ee5f57be13570:TM=1305094082:LM=1305094082:S=9q9v5bw643FUEJHY; expires=Fri, 10-May-2013 06:08:02 GMT; path=/; domain=translate.googleusercontent.com X-Content-Type-Options: nosniff Server: translation Expires: Wed, 11 May 2011 06:08:02 GMT Cache-Control: private Evilprofessor.co.uk »Zend Framework Per-modul alapú beállítások

Zend Framework Per-modul alapú beállítások

Által Steven Lloyd Watkin , péntek január 1., 2010 22:40

Én már létrehozott egy követ, hogy ezen a poszton, amely előírja kevesebb konfigurációt, lásd modul alapú elrendezés - Zend Framework .

Amikor a Zend Framework azokat a modulokat, annak nyilvánvaló, hogy ha fut a különböző (al-) helyek ki ugyanezt a kérelmet nem feltétlenül szeretnénk, hogy ugyanolyan elrendezés szkriptek esetében minden egyes részét. Úgy döntöttem, hogy menjen a következő site felépítése:

  / Alkalmazás
     / Vezérlők
         ...
     / Modellek
     / Modulok
         / Default
             / Vezérlők
             / Elrendezés
                 / Scripts
             / Views
                 / Scripts
         / AnotherModule
             ...
     / Scripts

A probléma az volt létrehozásáról elrendezés szkriptek egy-egy modul alapon. A válasz jött át felhasználásával cselekvési Helper. Beállítása az elrendezések egy-egy modul alapján három lépésből áll:

  1. Application.ini (vagy hasonló konfiguráció beállítás):
      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 / tag / layouts / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / layouts / scripts" 
  2. Hozd létre a cselekvés Helper:
      <? Php
     / **
      * Megadja az elrendezési út egy-egy modul alapján
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Óta 2010/01/01
      * /
     osztály Pro_Controller_Action_Helper_SetLayoutPath
         kiterjeszti Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Beállítja elrendezés alapuló út modul
          * /
         public function preDispatch ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modul] ['források'] ['layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ modul] ['források'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("elrendezés")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. És végül boostrap intézkedés helper:
      ...
         / **
          * Beállítja elrendezés szkriptek egy-egy modul alapján
          * /
         védett funkció _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ("frontController ');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         új Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

4 Válasz-hoz "Zend Framework Per-modul alapú beállítások"

  1. Behrang azt mondja:

    Szia először köszönöm a segítséget bemutató, de mondja meg, hol akció létrehozása segítőnk boszorkány file neve?
    behrang

  2. Steven Lloyd Watkin azt mondja:

    Szia Behrang, hozzon létre a cselekvés segítőnk melyik név tetszik, van saját "könyvtár" a névtér "Pro". Te is ugyanolyan könnyen hívja az osztály "SetLayoutPath", és tedd, ahol valaha is tetszik, feltéve, hogy a kódot megtalálja, és kiterjeszti a szükséges osztályok

  3. Shashi kanth azt mondja:

    Szia, iam összetéveszteni létrehozásával modul specifikus adatbázis beállításokat ... nem akárki, van egy ötletem?

  4. Steven Lloyd Watkin azt mondja:

    Azt hiszem, ez könnyen megvalósítható usign a fenti mintával. Először is, létre lehetőségek az Ön ini fájlban menti a fájlokat a:

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

    Ezután egyszerűen létre az adatbázis kapcsolat belátása szerint (Zend_Db:: factory () vagy hasonló), és rejtjük azt el a rendszerleíró adatbázisban, vagy állítsa be az alapértelmezett adaptert, ha használ Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Hagy egy Válaszol













Panoráma téma Themocracy

4 online látogató jelenleg
2 vendég, 2 botoktól, 0 tag
Max. látogatók ma: 10-én 04:35 UTC
Ebben a hónapban: 26., 2011/07/05 12:35 UTC
Ebben az évben: 130 at 28-03-2011 22:40 UTC
Az összes idő: 130 at 28-03-2011 10:40 UTC