如何使用PHPMD避免超全局

时间:2015-01-14 11:30:57

标签: php phpmd

我真的很喜欢phpmd以确保我们的PHP项目中的代码质量达到最低水平。现在我想添加一个规则来检测超全局的使用。但我不想要包括整个controversial ruleset。我尝试了以下行(与作曲家一起安装的phpmd):

vendor/bin/phpmd src/ text codesize,design,naming,unusedcode,Superglobals

但输出如下:

Cannot find specified rule-set "Superglobals".

有谁知道如何在phpmd中添加单个规则?

1 个答案:

答案 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

找到