Постоянные списки ACL Zend Framework
Предоставляет ли Zend Framework (или приложения, созданные с использованием Zend_Application) какой-либо механизм для сохранения списков ACL, или эта деталь оставлена на усмотрение отдельного разработчика системы / приложения?
Большинство примеров, которые я вижу в Интернете, включают настройку правил ACL в коде. Мне интересно, есть ли какой-нибудь стандартный / предпочтительный способ сохранить эти правила в базе данных и / или файловой системе, а затем автоматически загрузить их.
4 ответа
Утро,
это часть пользователя Framework. Мы храним наш Acl внутри файлов.ini или.xml. В сложных проектах мы используем Таблицу базы данных для хранения ролей и ресурсов.
На Zend DevZone есть очень хороший пример использования 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