Постоянные списки ACL Zend Framework

Предоставляет ли Zend Framework (или приложения, созданные с использованием Zend_Application) какой-либо механизм для сохранения списков ACL, или эта деталь оставлена ​​на усмотрение отдельного разработчика системы / приложения?

Большинство примеров, которые я вижу в Интернете, включают настройку правил ACL в коде. Мне интересно, есть ли какой-нибудь стандартный / предпочтительный способ сохранить эти правила в базе данных и / или файловой системе, а затем автоматически загрузить их.

4 ответа

Решение

Утро,

это часть пользователя Framework. Мы храним наш Acl внутри файлов.ini или.xml. В сложных проектах мы используем Таблицу базы данных для хранения ролей и ресурсов.

На Zend DevZone есть очень хороший пример использования acl с базой данных.

Zend ACL с базой данных

Если ACL сложный, но статический, вы можете попробовать кэшировать ACL с помощью Zend_Cache.

$cache = Zend_Cache::factory( 'File', 'File',
                                 array( 'automatic_serialization' => true,
                                        'master_file' => 'MyACL.php' ),
                                 array( 'cache_dir' => CACHE_PATH )
                               ));

Вы не указали, какой тип упорства ищется. Для сохранения продолжительности сеанса вы можете сохранить созданный вами реестр ACL (объект Zend_Acl) или реестр Zend.

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

Вас может заинтересовать этот ресурс Zend_Application и соответствующий конфиг от Джо Горника: http://gist.github.com/249442

Другие вопросы по тегам