2010-03-01 3 views
10

Est-ce que le Zend Framework (ou les applications créées à l'aide de Zend_Application) fournit un mécanisme pour les listes d'ACL persistantes, ou est-ce que ce détail est laissé au système/développeur d'applications individuel?Listes d'ACL Zend Framework persistantes

La plupart des exemples que je vois en ligne impliquent la configuration de vos règles ACL dans le code. Je suis curieux de savoir s'il existe un moyen standard/préféré d'enregistrer ces règles dans une base de données et/ou un système de fichiers, puis de les charger automatiquement.

Répondre

4

Matin,

thats la partie de l'utilisateur du cadre. Nous stockons notre Acl dans des fichiers .ini ou .xml. Pour les projets complexes, nous utilisons une base de données pour stocker les rôles et les ressources.

Il existe un très bon exemple sur Zend DevZone pour l'utilisation d'acl avec base de données.

Zend ACL with Database

+0

Le lien est rompu. – ficuscr

1

Vous pourriez être intéressé par cette ressource Zend_Application et configuration correspondante de Joe Gornick: http://gist.github.com/249442

+0

Cela semble intéressant, merci pour le pointeur! –

+0

J'utiliserais une base de données si vous avez besoin que vos utilisateurs puissent créer/éditer des rôles, et quelque chose de statique comme un fichier de configuration s'ils sont statiques. –

2

Si l'ACL est que vous pouvez essayer complexe mais statique mise en cache de votre ACL en utilisant Zend_Cache

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

Vous n'avez pas spécifié le type de persistance recherché. Pour la persistance de session, vous pouvez stocker le registre ACL que vous avez construit (objet Zend_Acl) dans la session, ou le registre Zend.

Je conseille également de le construire au moment de la connexion, ou d'une manière unique, pour éviter de surcharger le traitement de chaque page.

+0

Vous avez raison, quand j'ai posé cette question il y a 5 ans, je n'ai pas précisé quel genre de persistance était recherché. Je voulais savoir si je devais rechercher moi-même une sorte spécifique de persévérance, ou si Zend avait un système pour gérer ça pour moi. –