J'ai lu quelques livres Zend différents où ACL et Auth sont implémentés en utilisant la composition. Ils impliquent généralement Action Helpers avec des méthodes preDispatch, enregistrées dans le bootstrap.Zend: ACL et Auth via héritage, pas de composition
Maintenant, dans tout le codage jusqu'à présent, les mêmes méthodes ACL et Auth sont exécutées pour chacun de mes contrôleurs. Par conséquent, je pense que je pourrais tout aussi bien utiliser l'héritage pour accomplir ceci. Est-ce que je manque quelque chose? L'héritage semble juste un peu plus simple.
Auparavant, j'utilisais des assistants Action pour éviter d'avoir à charger toutes les règles dans l'objet ACL. (J'étais juste en train d'enregistrer le contrôleur actuel comme ressource ACL, et d'ajouter les règles pour cela). Quand je suis arrivé à intégrer Zend Navigation, cependant, j'ai trouvé que j'avais besoin de toutes les règles ACL (indépendamment du contrôleur), afin de déterminer les options de menu à présenter à l'utilisateur.
Je suppose qu'avec la composition, mes aides ACL et Auth sont plus faciles à utiliser sur d'autres projets, mais ce n'est qu'un petit avantage dans mon cas.
Merci!
Vous pouvez également utiliser des plugins de contrôleurs, voir http://stackoverflow.com/questions/4943940/using-zend-auth-to-secure-all-controllers/4944672#4944672 ressemble à une composition mais est très proche de l'héritage des contrôleurs. Et cela ne vous empêche pas d'avoir un objet Zend_Acl disponible pour les menus. – regilero
Nice un regilero. Voulez-vous couper/coller ceci dans une réponse? C'est mon préféré jusqu'ici. –