是否有PHPCS编码标准可以检查docblock中是否存在正确的注释(@param
,@return
,@throws
等),包括它们之间的正确间距?
答案 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年,您现在有了更多选择:
答案 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中阅读更多内容