でじくる。

主にプログラムの話題などを扱うブログです。

PHPMDで既存のルールセットからカスタムルールを作るときに気をつけること

PHPMDというツールがあります。

PHP Mess Detectorということで、

PHPで書かれたコードのいまいちいけていないところを指摘してくれるツールです。

 

未使用の変数を指摘してくれたりなかなか便利なのですが、

二文字の変数を使いたいから一部の条件を外したい、とかあるわけです。

 

そういうことをしたい場合は、カスタムのルールを作ります。

作り方は公式を参照。

 

Howto create a custom rule set

http://phpmd.org/documentation/creating-a-ruleset.html

 

で、ここからが今日の話題。

普通、phpmdをコマンドラインから実行するときは

phpmd hoge/ xml codesize,naming --reportfile phpmd.xml

みたいに書きます。

で、カスタムのルールを作成したときは

phpmd hoge/ xml codesize,naming,custom_rule.xml --reportfile phpmd.xml

と書く。ルールを並べているところにカスタムルールを書いたxmlを並べればよし。

超楽ちんです。

 

完全に新しいルールを作った場合は上記の例でよいのですが、

既存のルール、たとえばnamingルールから一部の条件を外す設定をした

ルールセットのxmlを作成した場合、巧く動きません。

namingルールの指定が重複しているからなのでしょうが、

カスタムルールで指定した設定が反映されない。

 

ならばどうするのか、というのは簡単で、

namingをはずしてやればよし。

phpmd hoge/ xml codesize,custom_rule.xml --reportfile phpmd.xml

これでちゃんと動きます。

どうせならルールセットは全部xmlに書いてしまうのがよいですかね。