zerkalica/phpmd

本包最新版本(dev-master)没有可用的许可信息。

PHPMD 开发团队的非官方版本,请使用 Composer 处理。

dev-master 2012-08-23 18:44 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:57:05 UTC


README

用法:phpmd [文件名|目录] [报告格式] [规则集文件],例如

mapi@arwen ~ $ phpmd PHP/Depend/DbusUI/ xml rulesets/codesize.xml
<?xml version="1.0" encoding="UTF-8" ?>
<pmd version="0.0.1" timestamp="2009-12-19T22:17:18+01:00">
  <file name="/projects/pdepend/PHP/Depend/DbusUI/ResultPrinter.php">
    <violation beginline="67"
               endline="224"
               rule="TooManyMethods"
               ruleset="Code Size Rules"
               package="PHP_Depend\DbusUI"
               class="PHP_Depend_DbusUI_ResultPrinter"
               priority="3">
      This class has too many methods, consider refactoring it.
    </violation>
  </file>
</pmd>

您可以将包含 PHP 源代码的文件名或目录名传递给 PHPMD。

PHPMD 的 PEAR 或 Phar 分发包括规则集文件在它的存档中,即使上面的 "rulesets/codesize.xml" 参数看起来像文件系统引用。

命令行选项

  • 注意,默认输出是 XML 格式,因此您可以将它重定向到文件并使用 XSLT 或其他操作。

  • 您还可以使用缩写名称来引用内置的规则集,如下所示

    phpmd PHP/Depend/DbusUI/ xml codesize
    
  • 命令行界面还接受以下可选参数

    • --minimumpriority - 规则优先级阈值;低于此优先级的规则将不会使用。
    • --reportfile - 将报告输出发送到指定的文件,而不是默认输出目标 STDOUT
    • --extensions - 逗号分隔的有效 PHP 源文件扩展名。
    • --ignore - 逗号分隔的文件或目录,将在解析过程中被忽略。

使用多个规则集

PHPMD 使用所谓的规则集,该规则集配置/定义了一组将被应用于测试源中的规则。PHPMD 的默认分发已经包含了一些默认集,可以直接使用。您可以使用集的名称调用 PHPMD 的命令行工具以应用此配置

~ $ phpmd /path/to/source text codesize

但如果您想对源代码应用多个规则集怎么办?您也可以将规则集名称列表传递给 PHPMD 的命令行工具,名称之间用逗号分隔

~ $ phpmd /path/to/source text codesize,unusedcode,naming

您还可以将自定义的规则集文件与内置规则集混合

~ $ phpmd /path/to/source text codesize,/my/rules.xml

就是这样。使用这种行为,您可以指定要检查源代码的自己的规则集组合。

使用多个源文件和目录

如果需要为代码的某些部分创建一个输出,PHPMD 还允许您指定多个源目录

~ $ phpmd /path/to/code,index.php,/another/place/with/code text codesize

退出代码

PHPMD 的命令行工具目前定义了三个不同的退出代码。

  • 0,此退出代码表示一切按预期进行。这意味着没有错误/异常,PHPMD 没有在测试的代码中检测到任何规则违规。
  • 1,此退出代码表示发生了错误/异常,它中断了 PHPMD 的执行。
  • 2,此退出代码表示 PHPMD 已经处理了测试代码而没有错误/异常发生,但它已检测到分析源代码中的规则违规。

渲染器

目前 PHPMD 包括以下三个渲染器

  • xml,将报告格式化为 XML。
  • text,简单的文本格式。
  • html,包含可能问题的单个 HTML 文件。