Когда инициализировать макет и детали темы в Zend Framework? - PullRequest
0 голосов
/ 15 ноября 2010

Я новичок в ZF, поэтому мой вопрос может выглядеть как новенький, и я заранее прошу прощения, если на него уже ответили.

Последовательность, в которой ZF выполняет полный процесс:
1. routeStartup
2. маршрут процесса
3. routeShutdown
4. dispatchLoopStartup
5. preDispatch
6. процесс отправки начинается
7. метод инициализации контроллера
8. preDispatch помощника контроллера
9. preDispatch действия
10. action
11. postDispatch действия
12. postDispatch помощника контроллера
13. postDispatch
14. dispatchLoopShutdown

теперь есть несколько мест, где мы можем начать + конфигурация макета и детали темы.Мы можем сделать это на этапах 5, 7, 8 и 9. Какой этап лучше всего подходит для этой цели.

Приложение будет использовать AJAX, поэтому, если я загружу детали макета на этапе 5, будет многоесть вероятность, что позже я буду удалять макет и отправлять только XML-ответ.

Ответы [ 2 ]

2 голосов
/ 15 ноября 2010

Обычно лучше всего настроить макет, используя плагин ресурса приложения * во время начальной загрузки.

Чтобы отключить макет во время ответа на XHR, используйте помощник действий AjaxContext .

Редактировать: В какой момент вы знаете, какую тему вы будете использовать?Если это достаточно рано и требуемые параметры доступны, вы можете реализовать это, используя метод начальной загрузки _init* или плагин для пользовательского приложения макета.

В противном случае я бы реализовал и зарегистрировал помощник действия контроллера, установивтема в ее preDispatch переопределении.Использование второго метода также дает вам доступ к запросу, что позволяет вам принимать решение на основе метода запроса, независимо от того, работаете ли вы с макетом или нет.Фактически, это может быть хорошим кандидатом для пользовательского переопределения самого помощника AjaxContext.

0 голосов
/ 15 ноября 2010

Вы можете начать и настроить макет перед шагом 1 во время начальной загрузки - это лучшее место:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...