【发布时间】:2020-05-19 04:12:16
【问题描述】:
是否有 PHPCS 编码标准可以检查文档块中是否存在正确的注释(@param、@return、@throws 等),包括它们之间的适当间距?
【问题讨论】:
标签: php phpdoc codesniffer
是否有 PHPCS 编码标准可以检查文档块中是否存在正确的注释(@param、@return、@throws 等),包括它们之间的适当间距?
【问题讨论】:
标签: php phpdoc codesniffer
尝试运行以下命令,看看它是否会产生您想要的结果:
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
【讨论】:
-s扔到phpcs参数列表中;它将准确显示您的代码触发了哪个嗅探,这对于调试和构建规则列表很有用。
2017 年您现在有更多选择:
【讨论】:
免责声明:我是 Rector 的作者。
2019年您可以使用静态分析为您完成@var类型或类型声明。
class SomeClass
{
private $value;
public setValue(string $string)
{
// here we know the string type is assigned
$this->value = $value;
}
}
知道了,Rector 自动完成 var 类型:
class SomeClass
{
/**
* @var string
*/
private $value;
public setValue(string $string)
{
$this->value = $value;
}
}
类似的方法适用于返回类型、PHP 7.4 类型以及来自父接口和类的类型声明。全部由 Rector 支持。
阅读更多How to Complete Type Declarations without Docblocks with Rector
【讨论】: