Uno de los métodos de la clase ReflectionFunction del API de reflexión de PHP se llama getDocComment() y devuelve los comentarios de documentación de una función o método. Por ejemplo:
/** * @param int $a Primer sumando * @param int $b Segundo sumando * @return int Suma de $a + $b */ function suma($a, $b) { //Otro comentario return $a + $b; } $funcion = new ReflectionFunction("suma"); echo $funcion->getDocComment() . "n";
El código anterior devolverá el comentario completo:
isra@isra:~$ php -f reflexion.php /** * @param int $a Primer sumando * @param int $b Segundo sumando * @return int Suma de $a + $b */
Hay que recalcar que no devuelve todos los comentarios, sino sólo los de documentación. Por eso si olvidamos poner dos asteriscos al inicio, no devolverá nada:
isra@isra:~$ php -f reflexion.php
Tampoco devolverá nada si utilizamos el símbolo de comentario de una línea //:
// @param int $a Primer sumando // @param int $b Segundo sumando // @return int Suma de $a + $b function suma($a, $b) { //Otro comentario return $a + $b; } $funcion = new ReflectionFunction("suma"); echo $funcion->getDocComment() . "n";
isra@isra:~$ php -f reflexion.php
En fin, un método interesante que puede servir para simplificar y aumentar el rendimiento de los sistemas de documentación como phpDocumentator, y también puede ser útil en el control de errores, combinándolo con demás métodos de ReflectionFunction.