phpcpdとは、phpのコードの重複を効率的に発見してくれるツール。
前提
macにcomposerをinstallするまでのあれこれ - Qiita
こんな感じでmacにcomposerを入れている前提。
インストール
https://github.com/sebastianbergmann/phpcpd
composer経由でinstallする。 本家のサイト通り、コピペで実行するだけ。
composer global require 'sebastian/phpcpd=*'
実行
パスを通しているのであれば、以下の形で実行出来る
phpcd hogedir
発生したエラーと対処など
メモリが足りない
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /Users/mapyo/.composer/vendor/sebastian/phpcpd/src/Detector/Strategy/Default.php on line 88
php.iniがデフォルトでは128Mになっているので、これを512Mに変更する
memory_limit = 128M ↓ memory_limit = 512M
不要なフォルダ等を除外したいけど、うまく動かない。
composer経由で入れているフォルダ等はチェックしても意味がない気がするので、これを除く。
http://www.ryuzee.com/contents/blog/3453
こちらのサイトに--exclude
オプションを入れるとなっているのだが、
これがどうも動かない。
phpcpd --exclude="./hogedir/vendor" ./hogedir phpcpd --exclude ./hogedir/vendor ./hogedir
この2パターンで試してみても、絶対パスにしてみても動かなかった。
$ phpcpd --version phpcpd 2.0.0 by Sebastian Bergmann.
何でだろう。。。