Hé les gars, je commence avec Zend, et j'essaie de comprendre comment ça marche (y arriver), et avec les classes Acl, les gens semblent déclarer tous les rôles et ressources dans un seul fichier. Maintenant, pour moi, cela semble être un gaspillage de ressources système si la personne ne se connecte qu'en tant qu'utilisateur de base, ou même simplement en tant qu'invité/visiteur du site. Je pensais donc qu'il est possible d'avoir différentes classes qui définissent les rôles dépendant du rôle/ressource de l'utilisateur actuel. Mon idée actuelle est d'utiliser switch/case sur le rôle dans le bootstrap, et charger des classes Acl individuelles en fonction du nom du rôle (par exemple sake, 'visitor' => 'Model_VisitorAcl', 'users' => ' Model_UserAcl 'et' admin '=>' Model_AdminAcl '), chacun avec un fichier de classe correspondant. Ensuite, dans les fichiers de classe, faites quelque chose pour chacun. Cela fonctionne, et actuellement je pourrais définir tous mes acls 'admin' en un (retour en arrière à travers la hiérarchie des droits d'admin-user-visitor), puis en 'user' avoir des rôles et des ressources 'user' - 'visitor'.Système de classe modulaire Zend_Acl
Toutefois, cela ne semble pas la meilleure façon, comme si je voulais changer les autorisations de rôle pour « utilisateur » je dois changer pour l'utilisateur 'et « admin ». Ceci n'est pas un problème avec 2 rôles, mais sur les plus gros systèmes, c'est évidemment le cas.
J'ai donc essayé quelque chose comme
class Model_AdminAcl extends Zend_Acl{ function __construct(){ $d = new Model_UserAcl(); //defining the admin role and permissions, with inheritance from the roles //set in Model_UserAcl } }
Pour essayer d'obtenir la Model_UserAcl construire fonction à exécuter, semble mettre ainsi le rôle « utilisateur », mais cela ne veut pas travailler, lancer « Uncaught exception « Zend_Acl_Role_Registry_Exception » avec le message 'ID de rôle parent' les utilisateurs 'n'existe pas' " erreur.
Alors, quelle est la prochaine étape? Avoir des fichiers include individuels pour chaque module, et les classes requises les incluent-elles si nécessaire? Ou est-ce que je fais juste de la montagne avec des taupinières avec ce problème?
Merci, Psy