Zend Framework: инициализация навигации в начальной загрузке - PullRequest
3 голосов
/ 12 июля 2011

В настоящее время я инициализирую навигацию по моему веб-сайту во время начальной загрузки.Я инициализирую от 1 до 3 навигационных объектов.Большинству запросов понадобятся объекты Navigation, но некоторые - нет.Те, которые не включают файлы, сгенерированные для загрузки и запросы JSON.Я не хочу выполнять работу по созданию объектов навигации, когда они не будут использоваться.

Я вижу два различных возможных типа решения:

  1. Укажите маршруты, которыенавигация не нужна, и проверяйте ее во время начальной загрузки
  2. Ленивая загрузка навигации

Для приемлемого решения я ищу особенности для решения этой проблемыпроблема.Меня интересуют типы решений, которые я не перечислил.


РЕШЕНИЕ

Я принимаю FinalForm ответ, но у него не было особенностей , которые я искал.Вот шаги, которые я предпринял:

  1. Создал одну отложенную загрузку функцию в моем Navigation классе модели базы данных для каждого навигационного объекта
  2. Переместил соответствующий код начальной загрузкик каждой из функций
  3. Добавлен экземпляр моей Navigation модели в Zend_Registry в Bootstrap
  4. Изменены View ссылки, такие как $this->siteNav в Zend_Registry::get('nav')->getSiteNav()

1 Ответ

2 голосов
/ 12 июля 2011

Ленивый груз всю дорогу чувак.

  • Инициализация навигации при загрузочном ремешке выглядит добавленной накладной нагрузкой ко всему приложению, поскольку не каждая страница нуждается в навигации.

  • гадость со звуками Specify routes that don't need the navigationclugey.

Вы должны расширить библиотеки Zend, чтобы создать собственную библиотеку версий Sorta, например, расширить контроллер ядра.В этом расширении используйте это, чтобы добавить метод для построения вашей навигации.Другими словами, создайте подкласс для вашего реального приложения из классов расширенной библиотеки.

Или создайте custom view helpers для разработки навигации.

...