PHPDoc es un estándar de documentación Javadoc adaptado para su uso en PHP .
Si bien el estándar de comentarios tiene solo un estado formal, sin embargo, se planea consolidarlo como uno de los estándares de desarrollo para los marcos PHP desarrollados por el grupo PHP-FIG. El estándar que se está preparando recibirá el número PSR-5 [1] . PHPDoc es compatible con código procedimental y orientado a objetos en los documentos.
Se ha creado un programa phpDocumentor separado para interpretar el código .
phpDocumentor es una aplicación capaz de analizar el código fuente de PHP y los comentarios de DocBlock para generar un conjunto completo de documentación API [2] .
Los doc-blocks ( eng. DocBlock comments ) son comentarios de varias líneas en el estilo del lenguaje C , ubicados antes del elemento documentado. El primer carácter de un comentario (y al comienzo de las líneas de comentario) debe ser * . Los bloques están separados por líneas en blanco.
Un ejemplo de bloque Doc para la función foo():
/** * @param string $msg string para generar * @author WikiEditor * @copyright 2016 Wikipedia * @return string sin cambios */ function foo ( $msg = '' ) { return $msg ; }Versión actual de PHPDocumentator 3, Repositorio
Al desarrollar sus propios proyectos grandes, todas las sutilezas de las cuales no se pueden tener en cuenta, al igual que al finalizar los proyectos de otras personas, a menudo tiene que echar un vistazo al código escrito previamente. Esto le permite imaginar con mayor precisión los objetos creados y devueltos y lo que puede hacer con ellos. Dado que PHP tiene una conversión de tipos implícita , es posible que se produzcan errores cuando se realizan operaciones en objetos de diferentes tipos. En lenguajes fuertemente tipados , esto no sucederá, el programa simplemente no se compilará.
Para evitar esto, se utilizan PHPDoc y otras tecnologías similares. Digamos que tenemos un código :
... $eventData = new EventData (); $eventData -> remitente = $controlador ; $eventData -> nombre = 'onDelete' ; $eventData -> grupo = 'global' ; $eventData -> argumentos = matriz ( 'id' => 15 ); $eventDispatcher -> triggerEvent ( $eventData ); ...Es posible que un desarrollador externo que lea este código no sepa qué contiene $controller, pero el IDE le dirá si es compatible con PHPDoc. Es decir, tecleando: $controller->- podemos ver lo que hay dentro. Como resultado, no hay necesidad de profundizar en la jungla de código para averiguar qué pasa por este objeto y en qué tipo.