2

我真的很喜欢phpmd,以确保我们的 PHP 项目中的代码质量达到最低水平。现在我想添加一个规则来检测超全局变量的使用。但我不想包含整个有争议的规则集。我尝试了以下行(phpmd 与 composer 一起安装):

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

但输出如下:

Cannot find specified rule-set "Superglobals".

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

4

1 回答 1

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>

要使用这些规则,您可以使用以下命令(phpmd 使用 composer 在您的项目中本地安装):

 vendor/bin/phpmd src/ text phpmd.xml 

更多细节可以在http://phpmd.org/documentation/creating-a-ruleset.html找到

于 2015-01-15T10:39:06.450 回答