Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5: Новые возможности.

  Все выпуски  

ZEND FRAMEWORK: Класс Zend_Acl


PHP 5: Новые возможности.

Класс Zend_Acl обеспечивает легкую и гибкую функциональность по контролю доступа и управлению привилегиями. В общих чертах, с его помощью приложение может организовать контроль доступа к защищенным объектам со стороны других объектов.

Объект, доступ к которому контролируется, называется ресурсом (Resource), а объект, который может запрашивать доступ к ресурсу, называется ролью (Role). Более подробно эти два ключевые типа объектов рассматриваются в следующей секции.

В качестве ресурсов и ролей могут выступать объекты любых классов. Для этого класс должен всего лишь имплементировать соотвествующий интерфейс: Zend_Acl_Resource_Interface или Zend_Acl_Role_Interface.

Интерфейс Zend_Acl_Resource_Interface включает в себя лишь один метод getResourceId(), который возвращает идентификатор данного ресурса. Аналогично, интерфейс Zend_Acl_Role_Interface включает в себя единственный метод getRoleId(), который возвращает идентификатор данной роли.

В качестве обобщенного воплощения ресурсов и ролей выступают классы Zend_Acl_Resource и Zend_Acl_Role, принимающие участие в формировании списка контроля доступа.

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

Основные моменты использования списка контроля доступа показаны в следующем примере, который может быть применим, например, к форуму, системе управления контентом или любому другому приложению, в котором необходимо разграничить доступ к определенным ресурсам для зарегистрированных пользователей (членов сообщества) и гостей.


  1. Существует возможность задания родительского ролевого объекта при создании новой роли (вторым параметром в конструкторе). При этом вновь создаваемая роль наследует все правила, применимые к родительскому объекту. Перепишите Пример 22.1, «Базовое использование Zend_Acl» таким образом, чтобы роль member наследовала роли guest.

  2. Если одни и те же правила задаются для всех без исключения ресурсов, то ресурсы можно не регистрировать, а в правилах вторым параметром передавать значение null. Перепишите Пример 22.1, «Базовое использование Zend_Acl» (с учетом только что сделанных изменений) таким образом, чтобы правила касались всех ресурсов.

«Ответы и решения к Глава 22, Класс Zend_Acl»

Created with DocBook


В избранное