Zend Framework Per-modulis balstās uzstādījumi
Esmu izveidojis follow uz šo amatu, kas prasa mazāk konfigurācija, lūdzu, skatiet modulis Pamatojoties Layout - Zend Framework .
Ja izmanto Zend Framework ar moduļiem, tā skaidrs, ka, ja jūs strādājat dažādiem (sub-) vietām pie pats pieteikums jums nav obligāti gribu pašā izkārtojumā skripti katrai daļai. Es izlēmu iet ar šādu vietnes struktūru:
/ Piemērošana / Kontrolieri ... / Modeļiem / Modules / Default / Kontrolieri / Izkārtojumu / Skriptus / Viedokļi / Skriptus / AnotherModule ... / Skriptus
Problēma bija izveidot izkārtojumu skripti uz vienu moduli atsevišķi. Atbilde nāca caur ar rīcības Helper. Ar ko izveido izkārtojumi uz vienu moduli bāzes ietver trīs darbības:
- Application.ini (vai līdzīgas konfigurācijas uzstādīšanas):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / izkārtojumu / skriptus" default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / izkārtojumu / skriptus" member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / biedrs / izkārtojumu / skriptus" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / filiāles / izkārtojumu / skriptus"
- Izveidojiet savu rīcību Helper:
<? Php / ** * Nosaka izkārtojumu ceļu uz vienu moduli bāzes * * @ Autora Lloyd Watkin <lloyd@evilprofessor.co.uk> * @ Kopš 2010/01/01 * / klases Pro_Controller_Action_Helper_SetLayoutPath paplašina Zend_Controller_Action_Helper_Abstract { / ** * Komplekti izkārtojums ceļu, pamatojoties uz moduļa * / valsts funkciju preDispatch () { $ Modulis = $ this-> getRequest () -> getModuleName (); if ($ bootstrap = $ this-> getActionController () -> GetInvokeArg (bootstrap)) { $ Config = $ bootstrap-> getOptions (); if (isset ($ config [$ moduļa] [resursi '] [' izkārtojums '] [' layoutPath '])) { $ LayoutPath = $ Config [$ moduļa] [resursi '] [' izkārtojums '] [' layoutPath ']; $ This-> getActionController () -> GetHelper (izkārtojums) -> SetLayoutPath ($ layoutPath); } } } }
- Un visbeidzot boostrap darbības palīgs:
... / ** * Izveido izkārtojumu skripti par katru moduli bāzes * / aizsargājamo funkciju _initLayoutHelper () { $ This-> bootstrap (frontController "); $ Izkārtojums = Zend_Controller_Action_HelperBroker: addHelper ( jauna Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































Hi pirmā paldies par jūsu noderīga apmācība, bet man pateikt, kur es varu izveidot rīcības palīgs ar raganu faila nosaukumu?
behrang
Hi Behrang, izveidot rīcības palīgs piemērojamās vārdu vēlaties, man ir mana "bibliotēka" ar namespace "Pro". Jūs varētu tikpat viegli zvanu klases SetLayoutPath "un nodot to, kur vien vēlaties, ja kodu var atrast, un jūs paplašināt nepieciešamo klasēm
Hi, IAM jaukt ar ko izveido moduļa īpaša datu bāze iestatījumi ... Vai kāds ir ideja?
Es domāju, ka tas varētu viegli sasniegt usign iepriekš minēto struktūru. Pirmkārt, izveidot opcijas jūsu ini failā pie failus:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... Utt ...
Tad vienkārši veidot savu datu bāzi saistībā, kā jūs ieskatiem (Zend_Db: rūpnīcas () vai tamlīdzīgi), un atlicināt to prom reģistrā vai iestatīt to kā noklusējuma adapteri, ja izmanto Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).