2010-03-01 21 views
10

¿El Zend Framework (o las aplicaciones creadas con Zend_Application) proporciona algún mecanismo para las listas de ACL persistentes, o queda ese detalle para el desarrollador individual de sistemas/aplicaciones?Listas de ACL de Zend Framework persistentes

La mayoría de los ejemplos que veo en línea implican la configuración de las reglas de la ACL en el código. Tengo curiosidad por saber si hay alguna forma estándar/preferida de guardar estas reglas en una base de datos y/o sistema de archivos y luego cargarlas automáticamente.

Respuesta

4

Mañana,

esa es la parte del usuario de Framework. Estamos almacenando nuestro Acl dentro de archivos .ini o .xml. En proyectos complejos, aunque usemos una base de datos para almacenar roles y recursos.

Hay un muy buen ejemplo en Zend DevZone para usar acl con la base de datos.

Zend ACL with Database

+0

El enlace está roto. – ficuscr

1

que podría estar interesado en este recurso Zend_Application y configuración correspondiente de Joe Gornick: http://gist.github.com/249442

+0

Parece interesante, gracias por el puntero! –

+0

Usaría una base de datos si necesita que sus usuarios puedan crear/editar roles, y algo estático como un archivo de configuración si son estáticos. –

2

Si la ACL es compleja, pero estática podría intentar almacenar en caché ACL usando Zend_Cache

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

No ha especificado qué tipo de persistencia se busca. Para la persistencia de la sesión-término, puede almacenar el registro de ACL que construyó (objeto Zend_Acl) en la sesión, o el Registro de Zend.

También recomiendo construirlo en logintime, o de una manera única, para evitar sobrecargar el procesamiento de cada página.

+0

Tiene razón, cuando hice esta pregunta hace 5 años no especifiqué qué tipo de persistencia se buscaba. Quería saber si necesitaba buscar un tipo específico de persistencia, o si Zend tenía un sistema para manejar eso para mí. –