如何在NetBeans 6.9(Ubuntu)中配置phpMD插件

时间:2011-04-20 08:46:03

标签: php netbeans

我编写了一个自定义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批处理”。

有没有人成功安装过这个有趣的插件?

2 个答案:

答案 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中打开输出窗口以查看结果。

希望这会有所帮助。