Düzen Ayarlar Modülü Zend Framework Başına - Takip
Farklı sonrası önceki İzleme kadar bir ayar başına modül dayalı düzen için Zend Framework , daha önce o zaman daha az konfigürasyon gerektiren kod ettik güncelledi (bu gerekli değil daha bu uygulama yapılandırma da birkaç satır!).
Yine bir faydalanmak Zend Controller Eylem Yardımcı şöyle bootstrap gelen o çağırarak:
/ **
* Kurar düzeni komut bazında başına modülü
* /
koruma fonksiyonu _initLayoutHelper ()
{
$ This-> önyükleme ('frontController');
$ Düzen = Zend_Controller_Action_HelperBroker: addHelper (
Yeni Pro_Controller_Action_Helper_SetLayoutPath (APPLICATION_PATH));
}
Hemen hemen aynı eskisi gibi zaman dışında bu biz yol olarak bizim temel yapıcı içine APPLICATION_PATH geçiş sabiti.
şöyle denetçi eyleminin yardımcı Sonraki kendisi şimdi görünüyor:
/ ** * Başına modül bazında düzen yolu Setleri * * @ Author Lloyd Watkin 16/02/2010 @ yana * * @ Paket Pro * @ Subpackage Controller_Action_Helper * / / ** * Başına modül bazında düzen yolu Setleri * * @ Author Lloyd Watkin 16/02/2010 @ yana * * @ Paket Pro * @ Subpackage Controller_Action_Helper * / sınıf Pro_Controller_Action_Helper_SetLayoutPath Zend_Controller_Action_Helper_Abstract uzanır { / ** * Baz yolu * * @ Var string * / $ _path Korumalı; / ** * Construct * * @ Param string $ yol * / public function ($ yol) __construct { $ This-> setBasePath ($ yol); } / ** * Set temel yolu * * @ Param string $ yol * / public function setBasePath ($ yol) { if (is_string ($ yol) | | empty ($ yol)) { new Exception ('temel yolu hariç string') atmak; } $ This-> = $ yol _path; } / ** * Taban yolu al * * @ Return dize * / koruma fonksiyonu _getBasePath () { (Is_null ($ this-> _path)) {if if (! defined ('APPLICATION_PATH')) { new Exception ('Base yolu tespit edilemeyen') atmak; } $ This-_path = APPLICATION_PATH>; } $ This-> _path dönmek; } / ** dayalı * Setleri düzeni yolu modul * / public function preDispatch () { $ Module = preg_replace ( '/ [^ AZ] / i','', $ this-> getRequest () -> getModuleName () ); ($ Bootstrap = $ this-> getActionController () ise -> GetInvokeArg ('Bootstrap')) { $ View = $ bootstrap-> getResource ('görünümü'); $ LayoutPath = $ this-> _getBasePath (). "/ Modules / {$ modül} / layouts / scripts /"; / Düzeni dizin * Eğer o, yoksa sadece sonbahar uygulamak var * Tekrar varsayılan * / (Is_dir ($ layoutPath)) {if $ This-> getActionController () -> GetHelper ('düzen') -> SetLayoutPath ($ layoutPath); $ Görünüm-> headLink () -> appendStylesheet ( "/ Styles / {$ modül} / style.css" ); } } } }
biz de bir alıcı ve ayarlayıcı temel yolu var, yapıcı bizim temel yolu (bkz. APPLICATION_PATH) ve geçen unutmayın. kod önceki sürümünden farklı olarak düzenler yolu kod varsayılan düzen yolu geri düşecek sonra yoksa. temel yolu onu sürekli APPLICATION_PATH için temel yolu, başka bir istisna atılır belirlemeye çalışacağız ayarlı değilse. Ben de yüzsüzce iyi ölçmek için bir modül tabanlı stil sayfasında Attıklarının
Modül dayalı düzen düzen script yolu (tabi bu yöntem kolaylıkla değiştirilebilir) olup olmadığı tespit edilir. Bu kurulum application.ini havai gelen küçük eklemiyor bir (yol var ancak eğer düzen PHP * performans sonucu olacaktır önbellek) ama modülleri yeni içinde daha kolay bırakma karşılığında size kolaylık ekledi kazanç.
Bu, çok farklı değil, ama yeni bir yapılandırma giriş, yeni bir modül eklemek istediğiniz her zaman eklemek gerek yok:)
* Gerekli (eğer için bu önbelleği temizleyin kullanın) clearstatcache fonksiyonu.


















































Merhaba, nerede sınıf Pro_Controller_Action_Helper_SetLayoutPath oluşturmak için lütfen bana hangi dosya adı ile
Ben zend de acemi değilim.
teşekkürler
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