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と連携して常にチェックするのが一番です。