Zend Framework для каждого модуля основана настройки
Я создал В ответ на эту должность, которая требует меньше конфигурации, см. Модуль на базе макета - Zend Framework .
При использовании Zend Framework с модулями, ее Очевидно, что если вы работаете в различных (суб-) сайтов с одного приложения не обязательно хотят же сценарии макет для каждой части. Я решил пойти со следующей структурой сайта:
/ Применение / Контроллеры ... / Модели / Модулей / По умолчанию / Контроллеры / Расположение / Сценарии / Просмотров / Сценарии / AnotherModule ... / Сценарии
Проблема заключалась в создании макета сценариев на каждого модуля основе. Ответ пришел через использование помощник действия. Настройка раскладки на каждого модуля основе состоит из трех этапов:
- Application.ini (или аналогичные установки конфигурации):
admin.resources.layout.layoutPath = APPLICATION_PATH "/ модули / Admin / макеты / сценарии" default.resources.layout.layoutPath = APPLICATION_PATH "/ модули / по умолчанию / макеты / сценарии" member.resources.layout.layoutPath = APPLICATION_PATH "/ модулей / членов / макеты / сценарии "affiliate.resources.layout.layoutPath = APPLICATION_PATH" / модули / филиал / макеты / сценарии " - Создайте свой помощник действия:
<? PHP / ** * Установка макета путь на каждого модуля основе * * @ Автор Ллойд Уоткин <lloyd@evilprofessor.co.uk> * @ С 2010-01-01 * / Класс Pro_Controller_Action_Helper_SetLayoutPath расширяет Zend_Controller_Action_Helper_Abstract { / ** * Установка макета путь, основанный на модуле * / общественного preDispatch функции () { $ = $ Модуль этого-> GetRequest () -> getModuleName (); если ($ = $ загрузки этого-> getActionController () -> GetInvokeArg ("загрузки")) { $ = $ Конфигурации загрузки-> getOptions (); если (isset ($ CONFIG ['макет'] [$ модуль] ['ресурсов'] ['layoutPath'])) { $ LayoutPath = $ CONFIG [$ модуль] ['макет'] ['ресурсов'] ['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 ()).