лучший подход для визуализации элементов сайта с использованием Zend Framework

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

  • Добавить действие, которое выводит элемент в конец стека действий каждый запрос?
    • это нормально для визуализации этих элементов через действия контроллера?
  • Создать плагин, который отображает элемент?
    • Могу ли я использовать специфичные для модуля плагины?
  • Есть ли другие возможные способы сделать это?
13.10.2009 08:31:56
1 ОТВЕТ
РЕШЕНИЕ

Я думаю, что стека действий следует избегать. Смотрите эту статью, почему .

Метод плагина может сработать, или вы можете создать ViewHelpers, который вы вызываете из скрипта макета. Мне нравится метод ViewHelpers, потому что он держит все очень ясно. Вы знаете, что когда вы выводите $ this-> mainNaviation (), существует ViewHelper с именем MainNavigation.

3
13.10.2009 08:48:39
Спасибо за статью. Хелпер вида действительно выглядит неплохо. Еще один вопрос: как вы называете пространство имен namehelpers? $ this-> module_mainNav ()?
NDM 13.10.2009 09:25:13
Вы не можете действительно вызывать ViewHeleprs из разных пространств имен. Вы можете установить, какие ViewHelpers будут вызываться, установив helperPath. См. Framework.zend.com/manual/en/… . Вы можете использовать это для вызова одного ViewHelper в модуле A, B, C, но более конкретного в модуле D.
smack0007 13.10.2009 10:11:17
Тогда это становится совершенно бесполезным, если я не могу использовать его из других компонентов? Если у меня есть MainNav внутри модуля меню, я могу отображать навигацию только внутри модуля меню .... или я должен проверить весь каталог моего модуля, чтобы вручную добавить все вспомогательные каталоги: s
NDM 13.10.2009 12:40:30
Я не думаю, что я объяснил это очень хорошо. Вы можете создать иерархию таким образом, чтобы по умолчанию существовал mainHav () ViewHelper и специфичный для модуля mainNav () ViewHelper. Из вашего макета вы можете просто вызвать $ this-> mainNav (). В ваших модулях вы можете настроить его так, чтобы модуль ViewHelpers вызывался вместо обычного ViewHelpers. Это объясняется в ссылке, которую я разместил. Они называют это укладкой.
smack0007 13.10.2009 12:58:25