【问题标题】:How to avoid superglobals using PHPMD如何使用 PHPMD 避免超全局变量
【发布时间】:2015-01-14 11:30:56
【问题描述】:

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

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

但输出如下:

Cannot find specified rule-set "Superglobals".

有谁知道如何在 phpmd 中添加一条规则?

【问题讨论】:

  • 你能再详细解释一下“不工作”吗?当你运行它时会发生什么?
  • 我已经编辑了帖子并复制了命令的输出。
  • 只是猜测,你试过小写吗?其他都是。
  • 是的,我试过小写,我猜的第一件事也是。在深入查看文档后,解决方案可能是通过定义一个ruleset.xml,但我希望有一个更简单的解决方案。

标签: php phpmd


【解决方案1】:

我创建了一个包含以下内容的文件 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 2012-05-04
    • 2016-03-19
    • 2012-02-02
    • 2015-12-26
    • 2020-09-02
    • 2020-10-02
    相关资源
    最近更新 更多