¿Para qué sirve el símbolo “@” en los comentarios?

2 minutos de lectura

En PHP, he notado que la gente pone el símbolo “@” en los comentarios del código fuente. Un gran ejemplo es cualquier cosa de WordPress. Cuando miras la fuente, ves cosas como

/** Results of the last query made
 *
 * @since 1.0.0
 * @access private
 * @var array|null
 */
var $last_result

(wp-db.php, Línea 124)

Cambia el resaltado de sintaxis en mi editor, así que asumo que hace algo, pero no estoy seguro de qué hace. ¿Alguien podría explicar qué hace el símbolo “@” en los comentarios?

Estos son PHPDoc comentarios Están destinados a ser analizables por máquina para admitir la documentación automatizada y la finalización del código IDE.

avatar de usuario
Noctámbulo

Las respuestas anteriores son correctas al afirmar que los símbolos @ en los comentarios de origen son comentarios de PHPDoc. Además, se pueden usar para algo llamado “anotación”, que agrega metadatos a algún elemento del código y puede afectar el comportamiento de una aplicación. No es oficialmente compatible con PHP, pero se ha estado discutiendo durante varios años y está en uso en Symfony, Doctrine y otros proyectos.

Una excelente explicación a través de una presentación de diapositivas (sin afiliación conmigo) de todo lo relacionado con PHP y anotaciones:

http://www.slideshare.net/rdohms/annotations-in-php-they-exist

Una discusión genérica del tema de la anotación:

http://en.wikipedia.org/wiki/Anotación

Un RFC de 2010 sobre la implementación de anotaciones en PHP:

http://wiki.php.net/rfc/anotaciones

Tales notaciones sirven como una forma de crear un analizador de documentación a partir de comentarios. Entonces, la primera @ podría identificarse como la versión, la segunda como los argumentos y así sucesivamente.

Esto normalmente se hace para generar automáticamente documentación a partir de archivos de código fuente. En este caso, el @_ se utilizan para identificar metadatos sobre la variable. En lugar de evaluarse en orden, @var puede decirle al analizador de documentación que el siguiente texto describe la variable y así sucesivamente.

¿Ha sido útil esta solución?