是否有针对PHP docblock的PHPCS标准?

时间:2012-12-07 16:58:04

标签: php phpdoc codesniffer

是否有PHPCS编码标准可以检查docblock中是否存在正确的注释(@param@return@throws等),包括它们之间的正确间距?

3 个答案:

答案 0 :(得分:30)

尝试运行以下命令,看看它是否产生了你想要的东西:

phpcs /path/to/code --standard=Squiz --sniffs=Squiz.Commenting.FunctionComment,Squiz.Commenting.FunctionCommentThrowTag,Squiz.Commenting.ClassComment,Squiz.Commenting.FileComment,Squiz.Commenting.VariableComment

如果是这样,你可以创建自己的标准,包括那些嗅探,以及你想要检查的任何其他内容。您可以通过创建ruleset.xml文件并将其作为标准来实现此目的。

例如,您可以创建一个名为mystandard.xml的文件,并包含以下内容:

<?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>

然后您可以改为运行此命令:

phpcs /path/to/code --standard=/path/to/mystandard.xml

您可以在ruleset.xml文件中执行其他操作。请参阅此处的文档:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

答案 1 :(得分:6)

2017年,您现在有了更多选择:

  • 检查docblocks的最好的嗅探之一是TypeHintDeclarationSniff from SlevomatCodingStandard ,适用于PHP 7,PHP 7.1,删除未使用的文档等。
  • 您也可以使用其他工具 - PHP-CS-Fixer ,在那里您可以找到更多可以帮助您使用docblock的修复工具,只需搜索&#34; doc&#34; < / LI>

答案 2 :(得分:0)

免责声明:我是Rector的作者。

在2019 中,您可以使用静态分析为您完成@var类型或类型声明

class SomeClass
{
    private $value;

    public setValue(string $string)
    {
        // here we know the string type is assigned
        $this->value = $value;
    }    
}

知道,校长会自动完成var类型:

class SomeClass
{
    /**
     * @var string
     */
    private $value;

    public setValue(string $string)
    {
        $this->value = $value;
    }    
}

类似的方法适用于返回类型,PHP 7.4类型以及父接口和类的类型声明。都由教区长支持。

How to Complete Type Declarations without Docblocks with Rector中阅读更多内容