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に書いてしまうのがよいですかね。