Zend Framework Başına Modülü tabanlı ayarları
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:
- 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"
- Lütfen Eylem Yardımcı oluşturun:
<? Php / ** * başına modül bazında * @ author Lloyd Watkin <lloyd@evilprofessor.co.uk> * düzen yolu Takımları @ 2010/01/01 * bugüne / class Pro_Controller_Action_Helper_SetLayoutPath Zend_Controller_Action_Helper_Abstract {/ ** genişletiyor * modülü * dayalı Takımları düzen yol / public function preDispatch () = $ this-> getRequest () {$ modül -> getModuleName (); ($ bootstrap = $ this-> getActionController () if -> getInvokeArg ('Bootstrap' )) {$ config = $ bootstrap-> getOptions (); (isset ($ config [$ modül] ['kaynaklar'] ['düzen'] ['layoutPath'])) {$ layoutPath = $ config [$ modülü ise ] ['kaynaklar'] ['düzen'] ['layoutPath']; $ this-> getActionController () -> getHelper ('düzen') -> setLayoutPath ($ layoutPath);}}}} - Ve son olarak eylem yardımcı boostrap:
... / ** * Başına modül bazında düzen komut kurar * / koruma fonksiyonu _initLayoutHelper () { $ This-> önyükleme ('frontController'); $ Düzen = Zend_Controller_Action_HelperBroker: addHelper ( Yeni Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































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
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
Merhaba, modül belirli veritabanı ayarlarını kurma ile karıştırılmamalıdır iam ... herkes bir fikri olan var mı?
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 ()).