PHPDoc tags

PHPDoc é uma convenção de comentários estruturados para PHP. Usada logo antes de classes, funções, métodos, propriedades e constantes para descrever seu comportamento, tipos e propósito.

Exemplo básico:

/**
 * Soma dois números.
 *
 * @param int $a Primeiro número
 * @param int $b Segundo número
 * @return int Resultado da soma
 */
function soma($a, $b) {
    return $a + $b;
}

Tags disponiveis:

@access acesso
@api api
@author autor
@copyright direito autoral
@deprecated descontinuado
@example exemplo
@generated gerado
@ignore ignorar
@internal interno
@link link
@method metodo
@package pacote
@param parametro
@property propriedade
@return retorna
@see Vejo
@since Desde a
@throws arremessa
@todo pendência
@uses usa
@var variavel
@version versão

Aqui estão as mais usadas na prática, com exemplos e quando usar:

Tag Quando Usar Exemplo
@param Antes de cada parâmetro de função/método @param string $nome Nome do usuário
@return Descreve o que a função retorna @return bool Verdadeiro se válido
@var Declara tipo de uma propriedade ou variável @var int
@throws Quando a função pode lançar uma exceção @throws InvalidArgumentException
@author Nome do autor do código @author João
@since Desde que versão existe @since 1.0.0
@deprecated Se o código está obsoleto e será removido @deprecated use outraFuncao()
@see Referência relacionada @see outraFuncao()
@link Link para doc ou referência externa @link https://exemplo.com/docs
@todo Anotar tarefas pendentes @todo otimizar desempenho
@uses Quando outra função/classe é usada aqui @uses TemplateManager::path()
@example Mostrar exemplo de uso @example examples/ex1.php
@internal Esconde da documentação gerada (uso interno) @internal

Menos usadas:

  • @access: public, private, protected — já é desnecessária no PHP moderno, pois o acesso é declarado diretamente (public, etc.).

  • @api: marca como parte da API pública (ex: SDK)

  • @generated: normalmente usada por ferramentas automatizadas

  • @ignore: oculta da documentação

  • @package / @subpackage: usado em projetos grandes, geralmente junto com autoloaders (como Composer)

  • @property: descreve propriedades mágicas (__get, __set)

  • @method: descreve métodos mágicos (__call) ou dinâmicos

  • @version: versão da classe ou biblioteca

Categorias: PHP