Blog de Israel Viana

Como las fechas de los últimos posts indican, he abandonado el blog. Lo mantengo on-line por si alguien encuentra útil algún artículo, y quizá algún día tenga tiempo y ganas para retomarlo. Gracias a todos, ha sido un placer.

Artículos sobre documentación

El curioso método getDocComment()

29 de mayo de 2009 | 0 comentarios

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.

Por cierto, hablando de reflexión, aprovecho para recomendarte una interesantísima clase de Thiago Toledo para serializar objetos en XML, gracias a la reflexión de PHP5. Para que luego digan que PHP tiene una orientación a objetos de juguete.


israelviana.es es propiedad de Israel Viana, escrito en Murcia (España). Puedes ponerte en contacto conmigo a través de la dirección de e-mail .com.
Información en RDF Metadatos Dublin Core Creative Commons License