Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Pour mon premier message dans ce forum, puisque je viens de débuter à essayer de comprendre et d'utiliser le ZF, j'ai plusieurs questions à propos d'Acl.
Tout d'abord, j'ai lu un peu partout que je devais créer un plugin afin de gérer si oui ou non l'utilisateur connecté au site peut accéder à la partie du site désirée.
Mais j'ai tout de même plusieurs questions en fait.
- Les ressources dans Acl, ce sont en fait le nom des différents 'controllers' ?
- Dans 'Zend_Controller_Request_Abstract', qu'est-ce que le module en réalité ? Le module est la ressource dans Acl ? Ou bien c'est le controller la ressource ?
Voila, tout ça me met un peu dans le flou ^^
Merci d'avance pour vos réponses
Dernière modification par Akis (02-04-2008 16:17:48)
Hors ligne
Ah ben finalement j'ai réussi à faire fonctionne l'Acl...
Donc les resources, ce sont bien les controllers, j'ai compris ça maintenant ^^
Par contre, je n'arrive pas à voir ce que sont réellement les "modules". Si quelqu'un pouvait éclairer ma lantèrne là dessus, ce serait gentil.
Hors ligne
salut
Comme tu as commencé à utilisé ZF, tu auras compris que dans ton adresse URL tu trouves dans un premier temps ton controleur et ton action (http://exemple.com/controller/action). Maintenant imagine que ton application devienne une usine à gaz et que tu aies 187263476 controleurs, cela devient ingérable d'où l'utilité de modules. Par exemple, dans ton applications tu auras un module "news", un autre "agenda", etc... et tes adresses vont un peu changer car pour atteindre ton action tu devras taper http://exemple.com/module/controller/action.
Pour utiliser les modules, tu dois annoncer dans ton index.php où se trouvent tes modules avec :
$frontController = Zend_Controller_Front::getInstance(); $frontController->addModuleDirectory("lien_vers_tes_modules_sur_ton_disque_dur");
Maintenant dans le répertoire "lien_vers_tes_modules_sur_ton_disque_dur" tu trouveras un répertoire "news" et un autre "agenda"... dans le répertoire "news" tu trouveras les répertoires "controllers" et "views" pareils à ceux que tu devrais utiliser à l'heure actuelle.
C'est déjà résumé mais pour faire encore plus bref, un module est une arborescence complémentaire pour mieux classer tes scriptes si ton application devient importante.
En espérant que tu aies compris ce que j'ai dit, tu peux mtn lire cela sans problème :
http://framework.zend.com/manual/fr/zen … dular.html
----
Pour en ce qui concerne les ACL, tu peux créer autant de ressources et de rôles que tu veux. Cela n'est pas forcément lié à ton controleur. Un exemple que j'utilise dans la pratique pour mon module agenda, c'est que je dois gérer l'agenda interne et l'agenda google... comme les ACL ne sont pas les mêmes pour les deux, j'ai créé deux ressource ("agenda_interne" et "agenda_google"). Maintenant je peux interroger les ACL comme bon me semble.
if ($acl->isAllowed($utilisateur->compétences, "agenda_google", "publier") { // ici l'action permise echo "Vous pouvez publier sur l'agenda Google"; } else { // ici l'interdiction echo "Vous n'avez pas le droit de publier sur l'agenda Google"; }
pour plus de détails :
http://alain-sahli.developpez.com/tutor … ework/acl/
Tout ce que je viens de t'expliquer est pour te faire comprendre la logique, je te laisse voir par toi-même comment mettre tout cela en pratique
Bonne chance !
Hors ligne