zerkalica / phpmd
本包最新版本(dev-master)没有可用的许可信息。
PHPMD 开发团队的非官方版本,请使用 Composer 处理。
dev-master
2012-08-23 18:44 UTC
Requires
- php: >=5.3.0
- pdepend/pdepend: dev-master
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 文件。