Я прочитал несколько разных книг по Zend, где ACL и Auth реализованы с использованием композиции. Обычно они включают помощников действий с методами preDispatch, зарегистрированными в начальной загрузке.
Теперь, во всем кодировании до сих пор одни и те же методы ACL и Auth выполняются для каждого из моих контроллеров. Поэтому я думаю, что с таким же успехом могу использовать наследование для достижения этой цели. Я что-то упускаю? Наследование кажется более простым.
Раньше я использовал помощников действий, чтобы не загружать все правила в объект ACL. (Я просто регистрировал текущий контроллер как ресурс ACL и добавлял для этого правила).
Однако, когда я пришел к интеграции Zend Navigation, я обнаружил, что мне нужны все правила ACL (независимо от контроллера), чтобы решить, какие пункты меню представить пользователю.
Я предполагаю, что с композицией мои помощники ACL и Auth легче использовать в других проектах, но в моем случае это лишь небольшое преимущество.
Спасибо!