我真的很喜欢phpmd以确保我们的PHP项目中的代码质量达到最低水平。现在我想添加一个规则来检测超全局的使用。但我不想要包括整个controversial ruleset。我尝试了以下行(与作曲家一起安装的phpmd):
vendor/bin/phpmd src/ text codesize,design,naming,unusedcode,Superglobals
但输出如下:
Cannot find specified rule-set "Superglobals".
有谁知道如何在phpmd中添加单个规则?
答案 0 :(得分:3)
我创建了一个文件phpmd.rules.xml,其中包含以下内容:
<?xml version="1.0"?>
<ruleset name="No controversial but superglobals"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description> Rulesets without controversial rules but including the check for superglobals </description>
<rule ref="rulesets/codesize.xml" />
<rule ref="rulesets/design.xml" />
<rule ref="rulesets/naming.xml" />
<rule ref="rulesets/unusedcode.xml" />
<rule ref="rulesets/controversial.xml/Superglobals" />
</ruleset>
要使用这些规则,您可以使用以下命令(使用composer在项目中本地安装的phpmd):
vendor/bin/phpmd src/ text phpmd.xml
更多详情可在http://phpmd.org/documentation/creating-a-ruleset.html
找到