CentOS6.3で静的解析ツールPHPMDを動かしてみる(PHP用) - NAVER まとめ
↑こちらの記載の通リで可能なようです。
PHPMD (PHP Mess Detector)のinstall
$ su - # pear channel-discover pear.pdepend.org # pear install pdepend/PHP_Depend-beta # pear channel-discover pear.phpmd.org # pear install --alldeps phpmd/PHP_PMD-alpha
PHPMDの実行
$ find . -name "*.php" -exec phpmd {} text codesize \; | grep Cyclomatic
私の場合、循環的複雑度で見ているので、↑このように実行しますが
↓こちらの通リ、様々な指標を得ることができます。
# phpmd [ファイル名|ディレクトリ] [レポートフォーマット(text or xml)] [ルール]
ルールはデフォルトで以下の5つがあるようです。
・codesize:循環的複雑度などコードサイズ関連部分を検出するルール
・controversial:キャメルケースなど議論の余地のある部分を検出するルール
・design:ソフトの設計関連の問題を検出するルール
・naming:長すぎたり、短すぎたりする名前を検出するルール
・unusedcode:使われていないコードを検出するルール
使い方は、例えばtest.phpを解析してテキストで出力する場合
# phpmd test.php text codesize
# phpmd test.php text controversial
# phpmd test.php text design
# phpmd test.php text naming
# phpmd test.php text unusedcodeというふうに実行できます。
また、以下のようにすると全てのルールを一気に実行できます。
※コンマの後に空白を入れるとダメのようです。# phpmd test.php text codesize,controversial,design,naming,unusedcode
レポートをxmlで出力したい場合はtextの部分をxmlにすればOKです。
# phpmd test.php xml codesize,controversial,design,naming,unusedcode