💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
格式 phpmd [filename|directory] [report format] [ruleset file]: ```bash mapi@arwen ~ $ phpmd PHP/Depend/DbusUI/ xml rulesets/codesize.xml ``` ```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> ``` 可以给PHPMD传一个文件名,也可以是一个PHP代码目录。 PHPMD Phar包里面包含了规则集文件,虽然"rulesets/codesize.xml"参数看起来很像一个文件。 ## 命令行选项 - 默认输出是XML格式,你可以把它重定向到一个文件中,然后对其XSLT,或者做些其他操作。 - 对于内建规则集,可以使用简短的名字,比如:phpmd PHP/Depend/DbusUI/ xml codesize - 命令行界面也接受附加参数: - --minimumpriority - 规则优先级; 更低优先级的规则不会使用。 - --reportfile - 输出报告到文件,代替默认的STDOUT。 - --suffixes - 有效文件后缀名,以逗号分隔多个文件。 - --exclude - 忽略的目录,以逗号分隔多个目录。 - --strict - 同时报告那些以@SuppressWarnings注释掉的节点。(注:@SuppressWarning意为禁止告警) ```bash #An example command line: phpmd PHP/Depend/DbusUI xml codesize --reportfile phpmd.xml --suffixes .php ``` ## 使用多个规则集 PHPMD使用的所谓规则集,配置/定义了应用到被测代码上的一组规则。PHPMD默认发布的版本中包含了一些规则集,可以直接使用。可以调用PHPMD命令,其中包含了规则集名: ```bash ~ $ phpmd /path/to/source text codesize ``` 可以使用逗号传递多个规则名: ```bash ~ $ phpmd /path/to/source text codesize,unusedcode,naming ``` 也可以在内建规则集中混合自定义规则集: ```bash ~ $ phpmd /path/to/source text codesize,/my/rules.xml ``` 这就是说,可以自定义规则集组合检查代码。 ## 退出码 PHPMD命令行工具当前定义了三个退出码。 - 0 表示一切正常。这意味着没有错误/异常,同时在本次测试中PHPMD没有检查到任何违规代码。 - 1 表示出现错误/异常,打断了PHPMD执行过程。 - 2 这个退出码表明PHPMD执行完了测试过程,没有被错误/异常打断。但是在分析过的代码里检测到了违规代码。 ## 渲染器 目前 PHPMD 带有以下三个渲染器: - xml, 把报告格式化为XML - text, 简单文本格式 - html, 简单HTML,但可能有问题。