2011-01-22 5 views
3

Je suis à la recherche d'une fonction ou une classe qui peut effectivement décrire une classe:Créer une classe PHP Outline

class MyClass{ 

    /* 
    * Perhaps include the function comments 
    * in the function. 
    */ 
    function mainFunction(){ 
    //Does Something 
    } 

    function functionWithArgs($arg1,$arg2=false){ 
    //Does Something 
    //The function I want will give e the arguments w/default values 
    } 

} 

Y at-il une fonction ou d'une bibliothèque dans l'existence qui peut me donner une sorte d'accès à l'information sur cette classe, ou même le fichier.

ex.

get_file_outline('fileWithAboveClass.php');

ou

get_class_outline('MyClass');

Quelqu'un sait-il de l'un, ou de savoir une façon d'écrire facilement ce?

Répondre

6

Jetez un oeil à PHP Reflection API

//use the ReflectionClass to find out about MyClass 
$classInfo = new ReflectionClass('MyClass'); 

//then you can find out pretty much anything you want to know... 
$methods = $classInfo->getMethods(); 
var_dump($methods); 

//you can even extract your comments, e.g. 
$comment=$classInfo->getMethod('mainFunction')->getDocComment(); 

Notez que pour l'extraction de commentaire à travailler, ils doivent être mis en forme comme les commentaires PHPDoc/Doxygen, et commencer par une ouverture /**

+0

qui est très utile, Merci! Est-il possible d'obtenir les arguments de la fonction? – Nitroware

+0

oui, une fois que vous avez l'objet ReflectionMethod pour la méthode, vous pouvez obtenir toutes sortes d'informations, voir http://www.php.net/manual/fr/class.reflectionmethod.php –

+0

Oui, je viens de voir que . Merci un million, vous m'avez sauvé une tonne de temps :) – Nitroware

0

Il y a aussi une option de ligne de commande disponible pour inspecter les fonctions et les classes.

$ php --rc DateTime 

vous donnera tous les détails sur la classe DateTime, tandis que

$ php --rf in_array 

vous donnera les arguments de la fonction "in_array".

Si vous utilisez le terminal lors du codage il peut être très pratique à utiliser au lieu de regarder vers le haut dans le manuel PHP tout le temps;)