Zend Rangka Kerja Per-Modul tetapan berasaskan
Saya telah membuat susulan untuk jawatan ini yang memerlukan kurang konfigurasi, sila lihat Modul Berasaskan Layout - Rangka Kerja Zend .
Apabila menggunakan rangka kerja zend dengan modul, jelas bahawa jika anda menjalankan pelbagai (sub-) laman web di luar permohonan yang sama anda tidak semestinya mahu yang sama skrip reka letak untuk setiap bahagian. Saya memutuskan untuk pergi dengan struktur laman web berikut:
/ Permohonan / Pengawal ... / Model / Modul / Default / Pengawal / Susun atur / Skrip / Pandangan / Skrip / AnotherModule ... / Skrip
Masalah itu telah menubuhkan skrip susun atur atas dasar per-modul. Jawapan yang diterima adalah melalui penggunaan Pembantu Tindakan. Menubuhkan susun atur atas dasar per-modul melibatkan tiga langkah:
- Application.ini (atau konfigurasi setup yang serupa):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modul / admin / susun atur / skrip" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / susun atur / skrip" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / ahli / susun atur / skrip" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modul / affiliate / susun atur / skrip"
- Buat Pembantu Tindakan anda:
<? Php / ** * Menetapkan laluan susun atur atas dasar per-modul * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Sejak 2010/01/01 * / kelas Pro_Controller_Action_Helper_SetLayoutPath memanjangkan Zend_Controller_Action_Helper_Abstract { / ** * Set susun atur jalan berdasarkan modul * / awam fungsi preDispatch () { $ Modul = $ this-> GetRequest () -> getModuleName (); jika ($ bootstrap = $ this-> getActionController () -> GetInvokeArg ('bootstrap')) { $ Config = $ bootstrap-> getOptions (); jika (isset ($ config [$ modul] ['sumber'] ['layout'] ['layoutPath'])) { $ LayoutPath = [Modul $] $ config ['sumber'] ['layout'] ['layoutPath']; $ This-> getActionController () -> GetHelper ('layout') -> SetLayoutPath ($ layoutPath); } } } }
- Dan akhir sekali boostrap penolong tindakan:
... / ** * Set skrip susun atur atas dasar per-modul * / dilindungi fungsi _initLayoutHelper () { $ Ini-> bootstrap ('frontController'); $ Layout = Zend_Controller_Action_HelperBroker :: addHelper ( di baru Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































