Bonjour,
je développe un code qui doit me permettre selon un fichier de configuration d'appeler dynamiquement une méthode d'un objet PHP.

Peu importe le fichier, en gros, je passe un nom de variable et le nom d'une méthode, et eventuellement une liste de parametres.

Tout fonctionne très bien, sauf pour deux cas

1- la pseudo variable this. Le code suivant (pour test), ne fonctionne pas et retourne "unknown this variable" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$a = "this"; // également essayé avec $a="$this"
$b = $$a; // atendu: $a = $this
l'erreur est provoquée dès l'instruction 2 - En utilisant call_user_func, je n'arrive pas à passer autre chose qu'une référence d'objet. Par exemple si j'ai besoin de passer comme objet qui retourne un objet, ca ne fonctionne pas. Le code serait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
$obj = new Request();
$a = "obj->getRequest"; // essayé avec "$this->getRequest()"
$b = $$a; // erreur


Quelqu'un a-t-il une solution ?

Pour le moment ma seule solution est d'utiliser la fonction PHP "eval", mais je ne la trouve pas très adaptée à mon cas.

Merci !