画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

phpcpdを使ってみる。

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.

何でだろう。。。