2010-03-01 5 views
10

Bietet das Zend Framework (oder Anwendungen, die mit Zend_Application erstellt wurden) einen Mechanismus für persistente ACL-Listen oder sind diese Details den einzelnen System-/Anwendungsentwicklern überlassen?Persistent Zend Framework ACL-Listen

Die meisten Beispiele, die ich online sehe, beinhalten die Einrichtung Ihrer ACL-Regeln im Code. Ich bin gespannt, ob es eine standardisierte/bevorzugte Möglichkeit gibt, diese Regeln in einer Datenbank und/oder einem Dateisystem zu speichern und dann automatisch zu laden.

Antwort

4

Morgen,

das ist der Teil des Framework-Benutzers. Wir speichern unser Acl innerhalb von .ini oder .xml Dateien. Bei komplexen Projekten verwenden wir eine Datenbank-Tabelle, um Rollen und Ressourcen zu speichern.

Es gibt ein sehr gutes Beispiel für die Verwendung von acl mit Datenbank in Zend DevZone.

Zend ACL with Database

+0

Verbindung ist unterbrochen. – ficuscr

1

Sie könnten in dieser Zend_Application Ressource und entsprechende Konfiguration von Joe Gornick interessieren: http://gist.github.com/249442

+0

Sieht interessant aus, danke für den Zeiger! –

+0

Ich würde eine Datenbank verwenden, wenn Sie Ihre Benutzer in der Lage sein müssen, Rollen zu erstellen und zu bearbeiten, und etwas statisches wie eine Konfigurationsdatei, wenn sie statisch sind. –

2

Wenn die ACL-Komplex ist aber statisch Sie könnten versuchen, Ihre ACL-Caching Zend_Cache

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

Sie haben nicht angegeben, welche Art von Persistenz angestrebt wird. Für die Persistenz der Sitzungsperioden können Sie die ACL-Registrierung, die Sie erstellt haben (Zend_Acl-Objekt), in der Sitzung oder in der Zend-Registrierung speichern.

Ich rate auch, es zu logintime oder in einer einmaligen Art von irgendeiner Art zu bauen, um die Verarbeitung jeder Seite zu überladen.

+0

Sie haben Recht, als ich diese Frage vor 5 Jahren gestellt habe, habe ich nicht angegeben, welche Art von Persistenz angestrebt wurde. Ich wollte wissen, ob ich selbst nach einer bestimmten Art von Beharrlichkeit suchen sollte, oder ob Zend ein System hatte, um das für mich zu handhaben. –