2011-04-20 59 views
1

我寫了一個自定義XML規則集,所以我跑phpmd用下面的命令:如何配置phpMD插件在NetBeans 6.9(Ubuntu的)

phpmd /path/to/my/file.module xml ruleset.xml 

現在,我已經下載並安裝了phpmd/CodeSniffer netbeans插件(http://sourceforge.net/projects/phpmdnb/files/),但我找不到正確配置它的方式。

去工具 - >選項 - > PHP,我找到了phpMD選項卡,我可以在其中更改設置。

不知道要在每個領域放什麼。

如果我在字段「phpMD批處理文件:」中放置二進制文件,netbeans將引發錯誤「文件/ usr/bin/phpmd不是正確的phpMD批處理」。

有沒有人成功安裝了這個有趣的插件?

+0

我沒有試過這個插件,因爲我使用NetBeans 7.0,但有一個CodeSniffer插件可以工作。我遵循[說明](http://www.amaxus.com/cms-blog/coding-standards-netbeans-php-codesniffer),並且在安裝插件後必須激活插件以查看選項面板。很棒! – 2011-06-02 01:26:37

回答

0

Carles,

我還沒有玩過這個特殊的插件。但是,我用於解決其他插件問題的方法也可以在這裏幫助。

所以這個方法是創建一個包裝腳本。例如,這可能是bash,在Linix/Mac或Windows上的欄中。在插件設置中使用此包裝作爲主要可執行文件。 通過這種方法,您可以獲得充分的靈活性 - 您可以傳遞任何您想要的參數等等。 NetBeans可能(也很可能會)將一些參數傳遞給該腳本(取決於插件)。這很容易調試。 下面是在bash這樣的包裝,用於PHPUnit的書面的例子:

#!/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 [email protected]<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沒有,但在遠程服務器上。但是你需要的是參數捕捉的方式。你可以調試,只是做

echo $0 $1 $2 

並打開輸出窗口在Netbeans看到的結果。

希望這會有所幫助。

2

您必須將您的規則集文件放入默認位於$ PEAR/data/PHP_PMD/rulessets/的默認phpmd文件夾「規則集」中。
現在您可以簡單地在NetBeans PHP-MD插件配置中設置規則集名稱。
作爲批處理文件,您必須從您的php二進制文件夾中選擇phpmd。

如果仍然出現任何錯誤,請插件頁面http://sourceforge.net/projects/phpmdnb/

希望這將有助於在提交錯誤報告。