2011-09-13 1 views
0

J'écris un générateur d'api, et ai besoin de lire toutes les méthodes avec les paramètres ist par une classe définie. lire toutes les méthodes est fait!comment obtenir les paramètres nécessaires d'une méthode PHP?

Exemple Classe:

class Foo { 

    function tester($test) 
    { 
    return "bar"; 
    } 

    function test(Article $article) 
    { 
    return "bar"; 
    } 

} 

get_class_methods = array('tester', 'test'); 

ok, maintenant je dois connaître les paramètres de chaque fonction, comment puis-je résoudre ce problème?

Important est TypeHinting.

Merci

Répondre

1

ok, maintenant je dois connaître les paramètres de chaque fonction, comment puis-je résoudre ce problème?

En utilisant le reflection API. Construire un nouveau ReflectionClass ('Foo'), obtenir le test de la méthode et vous pouvez obtenir ses paramètres par getParameters(). Bonne chance!

+0

fonctionne comme un charme, merci! – OskarStark

1

Je ne sais pas s'il y a une méthode pour ce faire, mais vous pouvez utiliser l'analyseur lexical php. Vous pouvez lire le fichier en utilisant token_get_all (voir http://us.php.net/manual/en/function.token-get-all.php). Analysez ensuite par vous-même pour obtenir toutes les classes, méthodes, paramètres, et même analyser les commentaires si vous le souhaitez!

+1

La doctrine utilise la réflexion, pas le tokenizer. –

0

Vous pouvez le faire avec Zend_Reflection qui est une extension des classes de réflexion PHP.

http://framework.zend.com/manual/en/zend.reflection.html

Lorsque vous avez un objet Zend_Reflection_Parameter vous pouvez obtenir votre type de valeur laissant entendre à travers getType Je me attends.

Questions connexes