Filtrer des méthodes

Par Pierre Ftn, il y a 11 ans


Bonjour ,

je souhaiterai faire un système d'authentification sur codeigniter ,

est-ce qu'il y aurait un moyen de mettre un code dans mon controller qui s'execute avant le lancement de chaque méthode pour faire un système de filtre .

J'ai pensé à le mettre dans le __construct() mais du coup je vois pas comment choisir sur quelle méthode il s'applique .

Merci d'avance

4 réponses

Pierre Ftn, il y a 11 ans

Je teste ça merci beaucoup

Pierre Ftn, il y a 11 ans

petit up pas trouvé de réel solution efficace

Alexandre #lbac, il y a 11 ans

Pour codeIgniter tu as une solution simple qui consiste à créer ton Controller maître ;)

Tu crées un fichier My_Controller dans le dossier core et dans le constructeur tu lances la vérification des sessions. Tu peux aussi utiliser les hooks mais un controller de base sera plus simple ;)

Ta classe My_Controller devra hériter de la classe Controller mère (je ne sais plus comme elle s'appelle trou de mémoire désolé ^^) et du coup tous tes controllers devront hériter de My_Controller. Après tu as un tutoriel sur la connexion automatique sur grafikart et je te conseille de suivre la doc (en anglais) qui est assez bien foutue je trouve :)

connected, il y a 11 ans

Bonjour,

de mémoire tu peux faire :

<?php class MY_Controller extends CI_Controller { public function _remap($method, $args) { // est exécuté avant l'action $this->before(); // exécute l'action normal demandé call_user_func_array(array($this, $method), $args); // exécuté après l'action $this->after(); } // tu peux, ou non, les redéfinir dans tes controleurs fils // si tu veux un before pour tout les controleurs tu le mets ici protected function before() { return; } protected function after() { return; } }

A tester, n'oublie de faire hériter tes controleurs de MY_Controller.

Bon courage