xsolve-pl/phpmd

该软件包的最新版本(1.4.0)没有提供许可信息。

使用Composer处理PHPMD的官方版本。

1.4.0 2012-09-07 21:52 UTC

This package is not auto-updated.

Last update: 2024-09-22 03:47:17 UTC


README

用法:phpmd [filename|directory] [report format] [ruleset file],例如

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
    • --suffixes - 以逗号分隔的有效源代码文件扩展名字符串。
    • --exclude - 以逗号分隔的用于忽略目录的模式。
    • --struct - 还报告有 @SuppressWarnings 注释的节点。

使用多个规则集

PHPMD使用所谓的规则集,它配置/定义了一组将在测试源代码中应用的规则。PHPMD的默认发行版已经附带了一些默认集,可以开箱即用。您可以使用集的名称调用PHPMD的cli工具以应用此配置

~ $ phpmd /path/to/source text codesize

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

~ $ 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文件。