Zend Framework Başına Modülü tabanlı ayarları

Tarafından Steven Lloyd Watkin Cuma, 1 Ocak 2010 22:40

Ben yapılandırma az gerektirir yazılan bu ettik takip oluşturulan bir bakın lütfen - Zend Framework Düzeni Modülü geçerli .

kullanırken zend çerçevesinde çeşitli eğer sen çalışan açıktır ile, modülleri (alt) siteleri uygulama off aynı sen aynı yapmak istemiyorum mutlaka düzen scriptler bölümü için her. Ben şu site yapısı ile gitmeye karar verdi:

  / Uygulama
     / Kontrolörleri
         ...
     / Modeller
     / Modules
         / Default
             / Kontrolörleri
             / Düzeni
                 / Scripts
             / Views
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Sorun başına modül bazında düzeni komut kurmak oldu. Cevap Eylem Yardımcısı kullanılarak geldi. başına modül bazında düzen kurma üç adımdan oluşur:

  1. Application.ini (veya benzeri yapılandırma ayarları):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ scripts / layouts / default / modules"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ scripts / layouts / member / modules"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ scripts / layouts / ortaklık / modules" 
  2. Lütfen Eylem Yardımcı oluşturun:
      <? Php
     / **
      * Başına modül bazında düzen yolu Setleri
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      2010/01/01 @ yana *
      * /
     sınıf Pro_Controller_Action_Helper_SetLayoutPath
         Zend_Controller_Action_Helper_Abstract uzanır
     {
         / **
          dayalı * Setleri düzeni yolu modul
          * /
         public function preDispatch ()
         {
        	 $ Modül = $ this-> getRequest () -> getModuleName ();
    
    	     ($ Bootstrap = $ this-> getActionController () ise
    	                        -> GetInvokeArg ('Bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modül] ['kaynaklar'] ['düzen'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ modül] ['kaynaklar'] ['düzen'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('düzen')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Ve son olarak eylem yardımcı boostrap:
     ...  / ** * Başına modül bazında * Doğum / koruma fonksiyonu _initLayoutHelper () {;: $ düzeni = Zend_Controller_Action_HelperBroker $ this-> önyükleme ('frontController'): addHelper (yeni Pro_Controller_Action_Helper_SetLayoutPath ());} düzen komut kurar .. . 

"Zend Framework Başına Modülü tabanlı ayarları" için 4 yanıt

  1. Behrang diyor ki:

    için Merhaba ilk teşekkür için öğretici yararlı ama cadı dosya adı ile eylem yardımcı oluşturmak nerede söyle bana?
    behrang

  2. Merhaba Behrang, sen, ben ad 'Pro' ile kendi 'kütüphane' var gibi hangisi adıyla eylem yardımcı oluşturun. Sen de kolayca sınıf 'SetLayoutPath' diyebiliriz ve asla senin gibi, kod bulabilirsiniz sağlanan nereye koymak ve gerekli sınıfları uzatmak

  3. Shashi kanth diyor ki:

    Merhaba, modül belirli veritabanı ayarlarını kurma ile karıştırılmamalıdır iam ... herkes bir fikri olan var mı?

  4. Ben bu kolayca yukarıdaki deseni usign elde olabileceğini düşünüyorum. Öncelikle, bir dosya boyunca sizin ini dosyasında seçenekleri oluşturun:

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

    Eğer uygun biçimde Sonra sadece veritabanı bağlantısı oluşturmak (Zend_Db:: fabrika () veya benzeri) ve kayıt defterinde onu saklamak veya Zend_Db_Table kullanarak varsayılan adaptörü sanki set (Zend_Db_Table: setDefaultAdapter ()).

Bir Yanıt bırak













Panorama Tema tarafından Themocracy

6 ziyaretçi online şimdi
5 misafir, 1 bot, 0 üye
bugün Max ziyaretçi: 26 12:46 UTC am
Bu ay: 26 de 2011/07/05 12:35 UTC am
Bu yıl: 130 28-03-2011 22:40 UTC
Tüm zamanların: 130 28-03-2011 10:40 UTC