2009-06-19 3 views
0

У меня есть два модуля, по умолчанию и mojo.
После первоначального кода бутстрапинга, который является одним и тем же для обоих модулей, я хочу, например, использовать разные макеты для каждого модуля (или использовать разные проверки учетных данных и т. Д.).
Где я помещаю это: IF (модуль == «харизмы») делают это ELSE сделатьКак использовать различную загрузку для разных модулей в zend framework

ответ

3

Если вы используете Zend_Application (в ZF1.8), то вы S должен иметь возможность использовать специфичные для модуля параметры конфигурации, чтобы обеспечить эту функциональность, как описано в разделе relevant section in the documentation.

Это потребует вас установить макет в конфигурации, так это выглядело как-то

mojo.resources.layout.layout = "mojo" 

anothermodule.resources.layout.layout = "anotherlayout" 

Компоновка затем будет установлен автоматически загрузчиком.

Другой альтернативой является использование переднего контроллера, который реализует метод preDispatch() для установки макета на основе имени модуля.

+0

+1 это кажется намного проще, чем мой ответ :), но куда будет идти файл layoutname.phtml? MODULENAME/макеты? или defaultmodule/layouts? – iceangel89

+0

Он может идти в любом месте. Если вы хотите его в каталоге модуля, используйте автозагрузчик модуля, чтобы добавить модуль в другое пространство имен. –

+0

Кто-нибудь проверял это на работу? Из http://bit.ly/f3Ioc «Можно подумать, что добавление второй строки с« default »будет включать макеты, специфичные для модуля, но, к сожалению, это не так. Он будет использовать последний указанный шаблон« – joedevon

0

Я рассмотрел этот вопрос пару дней назад, пытаясь заставить его работать над конфигурацией bootstrap. Большая проблема заключается в том, что загружаются все загрузочные файлы, поэтому он дает некоторые странные результаты, в которых используется макет.

Я пришел к выводу, что вы можете иметь конфигурацию на месте, но вам нужно работать с плагинами FrontController или с помощниками ActionController. Если вы хотите использовать config, установленный в application.ini, и вы хотите загрузить конфигурацию через загрузочный лоток, помощники - единственный способ пойти. Затем из помощника вы можете загрузить ActionController и выполнить команду getInvokeArgs для загрузки начальной загрузки. Много Hastle ... :)

Во всяком случае, я сделал небольшую реализацию в качестве примера в блоге: http://blog.keppens.biz/2009/06/create-modular-application-with-zend.html

GOODLUCK,

Jeroen

+0

tnx, ссылка iceangel89 (принятый ответ) дала мне очень прямолинейный и простой в реализации. –