田舎の技術者が奮闘中

php ruby node.js javascript などのスクリプト言語とサーバー(Chef、Vagrant)に関して書きます。

phpcpdで重複コードを調査する。

最近、コピペで開発しているプログラマーの風上にも置けない人が社内に増えてきたので、phpcpdを入れて重複コードをチェックするようにしてみました。

phpcpdをcomposerでインストールして利用してみます。
(composerはインストールされているものとします。)

インストール

まずcomposerでインストールします。

$ composer global require 'sebastian/phpcpd=*'

コレで ~/.composer にインストールされたと思います。
もし、パスを通していない場合は、~/.bashrc などに

export PATH="$PATH:$HOME/.composer/vendor/bin"

と追記してパスを通しておきましょう。
gemとほとんど同じ使い方が出来るので、超便利です。

使い方

使い方は簡単で、

$ phpcpd ./project

とディレクトリを指定するだけで、重複コードを確認してくれます。

オプション

使いそうなやつだけ抜粋してみました。

 --names
カンマ区切りでファイル名を指定(デフォルトは*.php)

 --names-exclude
カンマ区切りで除外のファイル名を指定

 --exclude
ディレクトリで除外

 --log-pmd
結果をログに書き込む

 --min-lines
同一の行と判断する最小行数(デフォルトは5)

 --fuzzy               
曖昧でチェックするのかな?

 --progress
プログレスバーを表示する。

 --help (-h)
ヘルプを表示

 --verbose (-v|vv|vvv)
詳細に表示。(コードまで表示される)

 --version (-V)
バージョン表示

まとめ

jenkinsと連携して常にチェックするのが一番です。