Особенности инициализации макета в Zend Framework - PullRequest
2 голосов
/ 20 октября 2011

Я заметил кое-что интересное в начальной загрузке Zend Framework.Я создал новый проект и затем использовал

zf enable layout

, чтобы включить механизм компоновки.Это работало из коробки, woo!

Но затем я попытался создать функцию с именем _initLayout в начальной загрузке, чтобы установить некоторые параметры.Интересно, что это снова отключает компоновку, даже если тело функции фактически пусто.Не выдается никаких ошибок, но скрипт макета больше не используется (исключение составляет тот случай, когда я на самом деле снова устанавливаю параметры и вручную вызываю Zend_Layout::startMvc()).

Переименование функции во что-нибудь еще, например _initFooзаставляет макет работать снова.

Итак, мой вопрос: это имя функции, которое каким-то образом распознается Zend Framework, и к нему применяются дополнительные действия, такие как отмена конфигурации макета из приложения.ини?Существуют ли другие случаи, когда я должен избегать определенных _init* имен функций в начальной загрузке?

1 Ответ

3 голосов
/ 20 октября 2011

Основная цель Bootstrap - настроить ресурсы, которые использует приложение.Они могут быть настроены по строкам в файле конфигурации (resources.resourcename.foo) или по методам в классе начальной загрузки (_initResourceName()).Я предполагаю, что zf enable layout добавил несколько resources.layout.* строк в application.ini.Добавив метод _initLayout в загрузчик, ZF будет использовать его для настройки ресурса макета вместо строк конфигурации.

Существуют ли другие случаи, когда мне следует избегать определенных_init * имена функций в начальной загрузке?

Плагины ресурсов подробно описаны в руководстве: http://framework.zend.com/manual/en/zend.application.available-resources.html, _init<resourcename>() всегда будет переопределять любые соответствующие строки в конфигурации.

...