2010-11-18 5 views
1

J'ai une classe en codeigniter qui traite uniquement avec ajax. J'ai créé une fonction dans cette classe qui vérifie si le refferal est un refferal ajax, je veux pouvoir appeler cette fonction chaque fois que n'importe quelle fonction de cette classe est utilisée.Aide pour utiliser __call avec codeigniter

En tant que tel que je l'ai mis en œuvre la méthode magique __call

class Ajax_content extends Controller { 

    function __construct() 
    { 
     parent::Controller(); 


    } 

    function __call($method, $arguments){ 

      $this->ajaxCheck(); //set up to return false and exit. 
      call_user_func_array(array($this,"_".$method),$arguments); 

     } 

À l'heure actuelle ajaxCheck() revient toujours false et exit() s. Mais il n'est pas appelé (à l'heure actuelle ma requête ajax renvoie toujours des données) Est-ce une façon valable d'aborder le problème?

Répondre

5

Je veux être en mesure d'appeler cette fonction chaque fois que toute fonction de cette classe est utilisé

__call ne se déclenche lors de l'invocation des méthodes inaccessibles. Si vous voulez que certaines fonctionnalités soient exécutées chaque fois qu'une méthode de contrôleur est appelée (et par cela, je suppose que vous voulez dire une méthode mappée à une requête web, pas aucune fonction dans la classe), vous devriez mettre cette fonctionnalité dans le constructeur.

+0

Ce n'est pas ce que cette réponse dit: http://stackoverflow.com/questions/3716649/how-to-auto-call-function-in-php-for-every-other-function-call – Ash

+0

mais vous avez donné la bonne réponse pour me mettre sur mon chemin ... – Ash