Zend Per-Moduli bazë settings Kornizë

Nga Lloyd Watkin Steven , e premte Jan 1, 2010 22:40

Unë kam krijuar një follow për këtë post që kërkon më pak konfigurim, ju lutem shikoni Module Bazuar Layout - Zend Kornizë .

Kur përdorni kuadrin Zend me module, e qartë e tij se në qoftë se ju jeni duke të ndryshme (sub-) faqet e jashtë të njëjtën kërkesë që nuk është e detyruar të duan të njëjtën Scripts layout për secilën pjesë. Unë vendosa të shkoj me strukturën faqen e mëposhtme:

  / Aplikimi
     / Kontrolluesit
         ...
     / Modele
     / Module
         / Default
             / Kontrolluesit
             / Layout
                 / Scripts
             / Shikime
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problemi ishte ngritja Scripts layout mbi një bazë për-modul. Përgjigja erdhi përmes përdorimit të një Helper Veprimit. Vendosja Layouts në një bazë për-modul përfshin tre hapa:

  1. Application.ini (ose përbërje të ngjashme konfigurimit):
      = APPLICATION_PATH admin.resources.layout.layoutPath "/ modules / admin / layouts / Scripts"
     = Default.resources.layout.layoutPath APPLICATION_PATH "/ modules / default / layouts / Scripts"
     = Member.resources.layout.layoutPath APPLICATION_PATH "/ modules / anëtar / layouts / Scripts"
     = Affiliate.resources.layout.layoutPath APPLICATION_PATH "/ modules / affiliate / layouts / Scripts" 
  2. Krijo Helper Veprimi juaj:
      <? Php
     / **
      * Vë në rrugën paraqitjen në një bazë për-modul
      *
      @ * Autori Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Viti 2010/01/01
      * /
     Pro_Controller_Action_Helper_SetLayoutPath klasë
         shtrihet Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Rrugën e vë layout bazuar në modulin
          * /
         preDispatch publike function ()
         {
        	 $ Module = getRequest $ this-> () -> getModuleName ();
    
    	     në qoftë se ($ bootstrap = getActionController $ this-> ()
    	                        - GetInvokeArg> ('bootstrap')) {
    
    	         $ Config = $ getOptions bootstrap-> ();
    
    	         if ((isset $ config ['layoutPath'] ['layout'] [$ modul] ['burimet'])) {
    	             $ LayoutPath =
    	                  $ Config [$ modul] ['layoutPath'] ['layout'] ['burimet'];
    	             getActionController $ this-> ()
    	                  - GetHelper> ('layout')
    	                  - SetLayoutPath> ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Dhe së fundi boostrap ndihmës veprimit:
      ...
         / **
          * Sets up scripts paraqitjen në një bazë për-modul
          * /
         _initLayoutHelper mbrojtura function ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ = Layout Zend_Controller_Action_HelperBroker:: addHelper (
    	         Pro_Controller_Action_Helper_SetLayoutPath ri ());
    	 }
     ... 

4 Responses to "Zend settings Kornizë Per-Moduli i bazuar"

  1. Behrang thotë:

    Hi thanks for your parë dobishme tutorial por më trego ku kam krijuar ndihmëtar veprim me dosjen emrin magjistare?
    behrang

  2. Hi Behrang, të krijojë ndihmës veprim me cilado emrin që ju pëlqen, unë kam "bibliotekë" të mi me namespace 'Pro'. Ju mund po aq e lehtë thirrjen 'SetLayoutPath "të klasës dhe e vuri atë kudo që të pëlqen, me kusht që kodi mund të gjeni dhe të ju japë klasat e kërkuara

  3. Kanth Shashi thotë:

    Hi, iam ngatërruar me ngritjen e bazës së të dhënave të veçanta modul settings ... ka njeri të ketë një ide?

  4. Unë mendoj se kjo mund të arrihet lehtë usign model më sipër. Së pari, të krijojë mundësitë në dosjen tuaj ini përgjatë fotografi të:

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

    Pastaj thjesht gjeneruar lidhja juaj e bazës së të dhënave, si e shihni të arsyeshme (Zend_Db:: fabrika () ose të ngjashme) dhe fsheh atë larg në regjistër ose vendosjen e tij si përshtatës default nëse përdoret Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).

Leave a Reply













Theme Panorama nga Themocracy

6 vizitorë online tani
3 vizitorë, 3 bots, 0 anëtarë
Vizitorë Max sot: 16 at 12:39 am UTC
Këtë muaj: 26 at 2011/07/05 12:35 UTC
Këtë vit: 130 në 10:40 UTC 28-03-2011
Gjithsej: 130 në 10:40 UTC 28-03-2011