IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Emplacement d'un plugin et instanciation dans le bootstrap


Sujet :

MVC PHP

  1. #1
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 814
    Billets dans le blog
    14
    Par défaut Emplacement d'un plugin et instanciation dans le bootstrap
    Bonjour,
    Comme indiqué dans ce message, je n'arrive pas à instancier le plugin pour gérer les ACL.

    J'ai créé un répertoire application/plugin et y ai placé ce plugin appelé Auth.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    class Application_Plugin_Auth extends Zend_Controller_Plugin_Abstract
    {
        private $_auth = null;
        private $_acl = null;
     
        public function __construct($auth, $acl)
        {
            $this->_auth = $auth;
            $this->_acl = $acl;
        }
     
        // Vérifie que l'utilisateur a la permission d'accéder au contrôleur de la page demandée
        public function preDispatch(Zend_Controller_Request_Abstract $request)
        {
            if($this->_auth->hasIdentity())
            {
                // Récupération du type d'utilisateur (= rôle au sens acl)
                $identity = $this->_auth->getIdentity();
                $nom_user = $identity->uti_login;
                $id_role = $identity->uti_id_type_utilisateur;
                $utilisateur = new Application_Model_DbTable_Utilisateur();
                $result = $utilisateur->getTypeUtilisateur($nom_user);
                $nom_role = $result['tu_libelle'];
            } // Fin if($this->_auth->hasIdentity())
     
            $controller = $request->controller;
            $resource   = $this->_acl->has($controller) ? $controller : null;
     
            if (!$this->_acl->isAllowed($nom_role, $resource))
            {
                // Type d'utilisateur non autorisé à accéder à la page
                $request->setControllerName('Auth');
                $request->setActionName('index');
            } // Fin if (!$this->_acl->isAllowed($nom_role, $resource))
        } // Fin function preDispatch
    }
    Dans le Bootstrap.php, j'ai ajouté cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        protected function _initAuth()
        {
            $auth = Zend_Auth::getInstance();
            $auth->setStorage(new Zend_Auth_Storage_Session('Auth'));
            $front = Zend_Controller_Front::getInstance();
            $front->registerPlugin(new Application_Plugin_Auth($auth));
        }
    Mais à l'exécution, j'ai ce message d'erreur :
    Fatal error: Class 'Application_Plugin_Auth' not found in /var/www/html/stagmas/application/Bootstrap.php on line 29
    J'ai essayé divers noms de classe de plugin, divers emplacements, notamment dans le répertoire library mais rien n'y fait, toujours le même type d'erreur de classe non trouvée.

    Qu'est-ce qui manque ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 505
    Par défaut
    Vite fait, je dirais que ton plugin devrais s'appeller comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class Plugin_Auth extends Zend_Controller_Plugin_Abstract
    Mais je regarde mieux dans un de mes projet comment j'ai fait et je reviens vers toi.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 144
    Par défaut
    Bonjour,
    je suis confronté à un problème similaire, et cela m'aiderait si vous pouviez me récapituler une solution qui a fonctionné.
    Merci d'avance.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    Le répertoire que t’as crée pour les plugin doit être nommé plugins avec s.

Discussions similaires

  1. Réponses: 13
    Dernier message: 31/03/2010, 10h35
  2. Instanciation dans une fonction inline
    Par mister3957 dans le forum C++
    Réponses: 5
    Dernier message: 04/03/2007, 19h27
  3. Réponses: 2
    Dernier message: 04/10/2006, 13h52
  4. [POO] Comment acceder a un objet javascript instancie dans une page mere
    Par herbert dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 20/07/2006, 19h34
  5. [Plugin][SWT] FileSelectionDialog dans un plugin
    Par vberetti dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 17/06/2005, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo