我编写了一个自定义XML规则集,因此我使用以下命令运行phpmd:
phpmd /path/to/my/file.module xml ruleset.xml
现在我已经为netbeans(http://sourceforge.net/projects/phpmdnb/files/)下载并安装了phpmd / CodeSniffer插件,但我找不到正确配置它的方法。
转到工具 - >选项 - > PHP,我找到了phpMD选项卡,我可以在其中更改设置。
不知道在每个领域放什么。
如果我将二进制文件放在“phpMD批处理文件:”字段中,netbeans会抛出错误“文件/ usr / bin / phpmd不是正确的phpMD批处理”。
有没有人成功安装过这个有趣的插件?
答案 0 :(得分:2)
您必须将规则集文件放入默认的phpmd文件夹“rulesets”,该文件夹通常位于 $ PEAR / data / PHP_PMD / rulesets / 。
现在您只需在NetBeans PHP-MD插件配置中设置规则集名称。
作为批处理文件,您必须从php二进制文件夹中选择phpmd。
如果您仍然遇到任何错误,请在插件页面http://sourceforge.net/projects/phpmdnb/
上提交错误报告希望这会有所帮助。
答案 1 :(得分:0)
卡尔斯,
我没玩过这个特定的插件。但是,我用于解决其他插件问题的方法也可以在这里提供帮助。
所以方法是创建一个包装器脚本。例如,在Linix / Mac或Windows上的栏上,这可能是bash。在插件设置中将此包装器用作主可执行文件。 使用这种方法,您可以获得充分的灵活性 - 您可以传递任何您想要的参数等等。 NetBeans可能(并且很可能会)将一些参数传递给该脚本(取决于插件)。这很容易调试。 下面是为PHPUnit编写的bash中的这种包装器的示例:
#!/bin/bash
#
localInputFile=${7:4}
localJUnitLog=$2
localCoverageLog=$4
remoteInputFile=`echo $localInputFile | sed "s|$localPath|$remotePath|g"`
remoteJUnitLog=${remotePath}nb-phpunit-log.xml
remoteJUnitLoginLocalFilePath=${localPath}nb-phpunit-log.xml
remoteCoverageLog=${remotePath}nb-phpunit-coverageClover.xml
remoteCoverageLoginLocalFilePath=${localPath}nb-phpunit-coverageClover.xml
remoteCoverageLoginLocalFilePathNew=${remoteCoverageLoginLocalFilePath}new
ssh root@<remote-server> "phpunit --colors --log-junit $remoteJUnitLog --coverage-clover $remoteCoverageLog $remoteInputFile"
cp $remoteJUnitLoginLocalFilePath $localJUnitLog
sed "s|$remotePath|$localPath|g" $remoteCoverageLoginLocalFilePath > $remoteCoverageLoginLocalFilePathNew
cp $remoteCoverageLoginLocalFilePathNew $localCoverageLog
这个我用来强制PHPUnit NetBeans插件使用phpunit不是在localhost,而是在远程服务器上。但是你需要的是参数被捕获的方式。你可以调试那只做
echo $0 $1 $2
并在Netbeans中打开输出窗口以查看结果。
希望这会有所帮助。