Zend Framework Per-модул на настройки
Аз бях създал В отговор на тази длъжност, която изисква по-малко конфигурация, моля, вижте Модул базата Разпределение - Zend Framework .
При използване на Zend Framework с модули, си очевидно, че ако сте под различни (под) сайтове на разстояние от същото заявление не е задължително да искат същите скриптове оформление за всяка част. Реших да отида със следната структура на сайта:
/ Приложение / Контролери ... / Модели / Модули / По подразбиране / Контролери / Оформление / Скриптове / Мнения / Скриптове / AnotherModule ... / Скриптове
Проблемът е за създаване на скриптове оформлението на на-модулен принцип. Отговорът дойде чрез използване на действие Helper. Настройване на оформлението на на-модулен принцип включва три стъпки:
- Application.ini (или подобна конфигурация настройка):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ модули / администратор / подредба / скриптове" default.resources.layout.layoutPath = APPLICATION_PATH "/ модули / по подразбиране / подредба / скриптове" member.resources.layout.layoutPath = APPLICATION_PATH "/ модули / член / подредба / скриптове" affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ модули / филиал / подредба / скриптове"
- Създаване на действие Помощник:
<? PHP / ** * Задава оформлението пътя на на-модулен принцип * * @ Автор Лойд Watkin <lloyd@evilprofessor.co.uk> * @ От 01.01.2010 * / клас Pro_Controller_Action_Helper_SetLayoutPath разширява Zend_Controller_Action_Helper_Abstract { / ** * Задава оформлението път на базата на модулите * / публична функция preDispatch () { $ Модул = $ това-> getRequest () -> getModuleName (); ако ($ фърмуера = $ това-> getActionController () -> GetInvokeArg ("фърмуера")) { $ Довереник = $ фърмуера-> getOptions (); ако (isset ($ довереник ['layoutPath'] ['подредба'] [$ модул] ['ресурси'])) { $ LayoutPath = $ Довереник [$ модул] ['layoutPath'] ['подредба'] ['ресурси']; $ Това-> getActionController () -> GetHelper ("оформление") -> SetLayoutPath ($ layoutPath); } } } }
- И накрая boostrap действието помощник:
... / ** * Задава се оформление скриптове на на-модулен принцип * / Функция за защита _initLayoutHelper () { $ Това-> фърмуера ("frontController '); $ Оформление = Zend_Controller_Action_HelperBroker:: addHelper ( нови Pro_Controller_Action_Helper_SetLayoutPath ()); } ...


















































Здравейте първо благодаря за полезен урок, но кажете ми къде да създавам действие помощник с имената на вещица файл?
behrang
Здравейте Behrang, създаване на действие помощник с което името ти харесва, аз имам свои "библиотека" на пространството от "Pro". Можете също така могат да наричат "SetLayoutPath" на класа и го сложи там където ви харесва, при условие на кода може да го намери и ще разшири задължителните курсове
Здравейте, IAM бърка с въвеждането на модула на настройките база данни ... Някой има ли идея?
Мисля, че това може лесно да се постигне usign по-горе схема. Първо, създаване на възможности в INI файл по досиетата на:
moduleName.db.user = "
moduleName.db.password = "
moduleName2.db.user = "
... И т.н. ...
След това просто генериране на връзката към нея както намерите за добре (Zend_Db:: фабрика () или нещо подобно) и скривалище далеч в регистъра или да го задава като основен адаптер, ако използвате Zend_Db_Table (Zend_Db_Table:: setDefaultAdapter ()).