Zend Framework Per-modulis balstās uzstādījumi
Esmu izveidojis Sekojums pie šo amatu, kas prasa mazāk konfigurāciju, lūdzu, skatīt modulis balstās izkārtojums - Zend Framework .
Lietojot Zend Framework ar moduļiem, tās acīmredzamu, ka, ja jūs lietojat dažādus (apakš-) vietu pie paša pieteikuma jums nav obligāti grib to pašu izkārtojumu skripti katrai daļai. Es izlēmu iet ar šādu vietnes struktūru:
/ Piemērošana / Kontrolieri ... / Modeļi / Moduļi / Default / Kontrolieri / Izkārtojums / Skriptus / Skatījumi / Skriptus / AnotherModule ... / Skriptus
Problēma bija izveidot izkārtojuma skriptus par katru moduli atsevišķi. Atbilde nāca caur izmantojot rīcības Helper. Izveidot izkārtojumu par vienu moduli pamatojoties ietver trīs darbības:
- Application.ini (vai līdzīgs konfigurācija setup):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / shēmām / scripts" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / shēmām / scripts" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / dalībvalstu / izkārtojumi / scripts" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / Filiāle / izkārtojumi / scripts"
- Izveidojiet savu rīcību Helper:
<? Php / ** * Nosaka izkārtojums ceļu uz vienu moduli pamata * * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Kopš 2010-01-01 * / klase Pro_Controller_Action_Helper_SetLayoutPath paplašina Zend_Controller_Action_Helper_Abstract { / ** * Nosaka izkārtojums ceļš pamatā moduli * / valsts funkciju preDispatch () { $ Modulis = $ šīs-> getRequest () -> getModuleName (); if ($ sāknēšanas = $ šīs-> getActionController () -> GetInvokeArg ("sāknēšanas ')) { $ Config = $ palaišanas programmas-> getOptions (); if (isset ($ config [$ modulis] ['resursi'] ['izkārtojums'] ['layoutPath'])) { $ LayoutPath = $ Config [$ modulis] ['resursi'] ['izkārtojums'] ['layoutPath']; $ This-> getActionController () -> GetHelper ("izkārtojums") -> SetLayoutPath ($ layoutPath); } } } }
- Un visbeidzot boostrap rīcības palīgs:
... / ** * Veido izkārtojuma skriptus par katru moduli, pamatojoties * / aizsargājamo funkcija _initLayoutHelper () { $ This-> sāknēšanas ("frontController '); $ Izkārtojums = Zend_Controller_Action_HelperBroker :: addHelper ( jauns Pro_Controller_Action_Helper_SetLayoutPath ()); } ...

















































