То, что что-то существует в ZF, не означает, что вы должны использовать это любой ценой. Вы не получаете бонусные баллы за это. Если вы чувствуете, что Zend_Acl является излишним для вашего варианта использования, используйте ваш более простой подход. Это вполне приемлемо.
На самом деле, в одном из моих приложений я использую ActionHelper
для проверки роли пользователя. У помощника есть единственный метод requireRole()
, который принимает требуемую роль в виде строки. Теперь, когда мне нужно ограничить действие, я просто вызываю этот вспомогательный метод в первую очередь. Если мне нужно ограничить весь контроллер, я помещаю вызов в метод init()
. Недостатком является то, что контроль доступа не централизован.
В другом приложении у меня только один контроллер, которому нужно ограничение доступа. В этом приложении я использовал ControllerPlugin
, который проверял бы, является ли запрошенный контроллер ограниченным контроллером и имеет ли пользователь требуемую роль для этого. Это также хорошо работало, и я мог добавить дополнительные контроллеры к проверке по мере необходимости.
Итак, используйте то, что подходит:)