Zend Framework Başına Modülü tabanlı ayarları
Ben daha az yapılandırma gerektirir bu yazı için bir takip yarattım, lütfen Zend Framework - Modül Tabanlı Düzeni .
Kullanırken zend framework modülleri, aynı uygulamayı kapatmak çeşitli (alt-) siteler çalıştırıyorsanız eğer mutlaka aynı istemediğiniz apaçık ortada olan düzeni komut her bir parça için. Ben şu site yapısı ile gitmeye karar verdi:
/ Uygulama / Kontrolörleri ... / Modelleri / Modules / Varsayılan / Kontrolörleri / Düzeni / Scripts / Views / Scripts / AnotherModule ... / Scripts
Sorun başına modül bazında komut düzeni kuruyor. Bu sorunun cevabı bir Eylem Yardımcısı kullanarak 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 "/ modules / default / layouts / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / layouts / scripts" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / ortaklık / layouts / scripts"
- Lütfen Eylem Yardımcısı oluşturun:
<? Php / ** * Başına modül bazında düzeni yolunu ayarlar * * @ 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 { / ** Modülü dayalı * Setler düzeni yolu * / public function preDispatch () { $ Modül = $ this-> GetRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ('önyükleme')) { $ 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); } } } }
- Ve son olarak eylem yardımcı boostrap:
... / ** * Başına modül bazında düzeni komut kurar * / koruma fonksiyonu _initLayoutHelper () { $ This-> bootstrap ('frontController'); $ Düzeni = Zend_Controller_Action_HelperBroker :: addHelper ( Yeni Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































