Bonjour,

Envoyé par
shadypierre
Je suis feignant et j'ai la flemme de tout lire

Hum, un peu pareil...
qq remarques qui pourront t'aider:
normes de nommage dans zend:
si tu as un nom de classe du style: cela veut dire que dans ton dossier library, tu as
1 2 3 4 5
| -library
-Inuitech
-Acl
Plugin.php
+Zend |
ou Inuitech serait le dossier où tu ranges tes classes perso. Pour que l'autoloader de Zend puisse marcher, il faut en effet enregistrer ton dossier de classes persos dans le fichier application.ini (pour que Zend puisse transformer
en "charge la classe qui se trouve dans library/Inuitech/Acl/Plugin.php)
code à rajouter dans application.ini
autoloadernamespaces.inuitech = "Inuitech_"
le bootstrap, c'est avant tout ton fichier index.php.
Voilà par exemple à quoi ressemble ce que je mets dans le mien pour les autorisations d'accès:
1 2 3 4 5 6 7 8 9 10 11 12 13
| /************* gestion des accès aux ressources ********************************/
$front = Zend_Controller_Front::getInstance();
//lecture d'acl.ini et création des Acl
// je mets mes controles d'accès dans un fichier.ini
$acl_ini = APPLICATION_PATH .'/configs/acl.ini' ;
$acl = new My_Acl_Ini($acl_ini) ;
Zend_Registry::set('acl', $acl);
// enregistrement du pluggin
$front->registerPlugin(new My_Controller_Plugin_Auth($acl)) ;
/*********************************************************************/
// il faut absolument que ton code pour les acl soit avant le run() de l'appli
$application->bootstrap()
->run(); |
il faut absolument que ton code pour les acl soit avant le run() de l'appli, car ta fonction preDispatch doit agir avant la redirection sur tel ou tel contrôleur ou tel ou tel action (l'intérêt même des acl) pour savoir si tu es autorisé à y avoir accès ou pas...
peut-être ce tuto là pourra t'aider à approfondir tes recherches
Partager