for - phpdoc docblock
¿Hay un estándar de PHPCS dirigido a los docblocks de PHP? (3)
En 2017 ya tienes más opciones:
- uno de los mejores sniffs para verificar docblocks es TypeHintDeclarationSniff de SlevomatCodingStandard , funciona muy bien con PHP 7, PHP 7.1, elimina documentos no utilizados, etc.
- También puede hacer uso de otra herramienta, PHP-CS-Fixer , allí puede encontrar más reparadores, que lo ayudarán con docblock, solo busque "doc"
¿Existe un estándar de codificación de PHPCS que compruebe que las anotaciones correctas ( @param
, @return
, @throws
, etc.) están presentes en un bloque de documentos, incluido el espacio adecuado entre ellos?
Intente ejecutar el siguiente comando y vea si produce lo que desea:
phpcs /path/to/code --standard=Squiz --sniffs=Squiz.Commenting.FunctionComment,Squiz.Commenting.FunctionCommentThrowTag,Squiz.Commenting.ClassComment,Squiz.Commenting.FileComment,Squiz.Commenting.VariableComment
Si lo hace, puede crear su propio estándar que solo incluya esos sniffs y cualquier otra cosa que desee verificar. Para ello, crea un archivo ruleset.xml
y lo utiliza como su estándar.
Por ejemplo, podría crear un archivo llamado mystandard.xml
e incluir el siguiente contenido:
<?xml version="1.0"?>
<ruleset name="MyStandard">
<description>My custom coding standard.</description>
<rule ref="Squiz.Commenting.FunctionComment" />
<rule ref="Squiz.Commenting.FunctionCommentThrowTag" />
<rule ref="Squiz.Commenting.ClassComment" />
<rule ref="Squiz.Commenting.FileComment" />
<rule ref="Squiz.Commenting.VariableComment" />
</ruleset>
Entonces puedes ejecutar este comando en su lugar:
phpcs /path/to/code --standard=/path/to/mystandard.xml
Hay otras cosas que puedes hacer en un archivo ruleset.xml
. Consulte la documentación aquí: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml
Descargo de responsabilidad: Soy autor de Rector.
En 2019 puede usar el análisis estático para completar tipos de @var
o declaraciones de tipos por usted.
class SomeClass
{
private $value;
public setValue(string $string)
{
// here we know the string type is assigned
$this->value = $value;
}
}
Sabiendo eso, Rector autocompleta el tipo var:
class SomeClass
{
/**
* @var string
*/
private $value;
public setValue(string $string)
{
$this->value = $value;
}
}
Un enfoque similar funciona para el tipo de devolución, tipos PHP 7.4 y declaraciones de tipo de interfaces y clases principales. Todo apoyado por el rector.
Lea más en Cómo completar declaraciones de tipo sin Docblocks con Rector