2010-03-11 9 views
1

Je veux récupérer les commentaires d'une méthode, prendre ci-dessous méthode par exemple:chercher méthode php commentaires

/** 
* Returns the regex to extract all inputs from a file. 
* @param string The class name to search for. 
* @return string The regex. 
*/ 
public function method($param) 
{ 
    //... 
} 

le résultat devrait être

Returns the regex to extract all inputs from a file. 
@param string The class name to search for. 
@return string The regex. 

la façon dont je trouve est d'utiliser une fonction comme file_get_content à obtenir le contenu du fichier -> filtrer la méthode que je veux -> fetch l'utilisation de commentaires regexp

il semble un peu compliqué, est-il un moyen pratique pour archiver cela?

Répondre

4

Si vous voulez utiliser le commentaire en PHP pour quelque chose vérifier getDocComment dans reflection api

+0

grâce, exactement ce que Je veux :) – limboy

+0

après un coup d'oeil profond, ce n'est pas ce dont j'ai besoin. getDocComment récupère simplement le commentaire de la classe, pas celui de la méthode. donc j'écris un petit script pour le faire http://gist.github.com/329113 – limboy

1

vous pouvez réellement obtenir les commentaires de la documentation est une méthode de php avec getDocComment

$ref=new ReflectionMethod('className', 'methodName'); 

echo $ref->getDocComment(); 
0

Pour une décharge de méthode que j'utilise ce petit fonction que j'ai composée. Il va chercher toutes les méthodes de la classe à condition que soient publics (et donc d'utiliser pour vous).

j'utilise une méthode dump() pour formater bien le tableau en sortie des noms de méthode et des descriptions, mais ce n'est pas nécessaire si vous souhaitez l'utiliser pour autre chose :-)

function getDocumentation($inspectclass) { 
    /** Get a list of all methods */ 
    $methods = get_class_methods($inspectclass); 
    /** Get the class name */ 
    $class =get_class($inspectclass); 
    $arr = []; 
    foreach($methods as $method) { 
     $ref=new ReflectionMethod($class, $method); 
     /** No use getting private methods */ 
     if($ref->isPublic()) { 
      $arr[$method] = $ref->getDocComment(); 
     } 
    } 
    /** dump is a formatting function I use, feel free to use your own */ 
    return dump($arr); 
} 
echo getDocumentation($this);