1. まとめトップ

はじめに:PHPMDとは

phpmdはPHP Mess Ditectorの略で、PHPコードの潜在的なバグになりそうな箇所や実装上の問題を検出してくれるツールである。例えば未使用の変数の指摘、多数のpublicメソッドのある巨大クラスの検出、一文字変数等もこのツールで検出可能だ。

手順0:CentOS6.3、PHPのインストール

手順1:PHPMDのインストール

上記の本家のインストールの説明を見る

必ずroot権限で実行する

# yum -y install php-pear

# 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

手順2:動作確認

# phpmd を実行して以下のような出力がされればインストールは成功している

Mandatory arguments:
1) A php source code filename or directory. Can be a comma-separated string
2) A report format
3) A ruleset filename or a comma-separated string of rulesetfilenames

・・・

手順3:PHPMDを動かしてみる

上記、本家のドキュメントとルールのページを参考に

基本的なコマンド使い方は以下のようです。
# 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

参考URL

1





Doctor.Yさん