PHP phpcpd をインストールする
スポンサーリンク
このドキュメントの内容は、以下の通りです。
phpcpd は、 Copy/Paste Detector (CPD) for PHP code です。PHPのコピペ、つまり、重複するコードを検出してくれます。
phpcpd のインストール
kaworu% pear channel-discover components.ez.no Discovering channel components.ez.no over http:// failed with message: channel-add: temp_dir is not writable: "/tmp/pear" - You can change this location with "pear config-set temp_dir" Trying to discover channel components.ez.no over https:// instead Discovery of channel "components.ez.no" failed (channel-add: temp_dir is not writable: "/tmp/pear" - You can change this location with "pear config-set temp_dir") 1で終了しました kaworu% sudo pear install phpunit/phpcpd Password: Unknown remote channel: components.ez.no phpunit/phpcpd requires package "channel://components.ez.no/ConsoleTools" (version >= 1.6) downloading File_Iterator-1.3.0.tgz ... Starting to download File_Iterator-1.3.0.tgz (5,109 bytes) .....done: 5,109 bytes downloading PHP_Timer-1.0.2.tgz ... Starting to download PHP_Timer-1.0.2.tgz (3,686 bytes) ...done: 3,686 bytes install ok: channel://pear.phpunit.de/File_Iterator-1.3.0 install ok: channel://pear.phpunit.de/PHP_Timer-1.0.2
なんだか、上では、うまくいってませんが、次のコマンドでうまくいきました。
kaworu% sudo pear channel-discover components.ez.no Adding Channel "components.ez.no" succeeded Discovery of channel "components.ez.no" succeeded kaworu% sudo pear install phpunit/phpcpd downloading phpcpd-1.3.5.tgz ... Starting to download phpcpd-1.3.5.tgz (8,746 bytes) .....done: 8,746 bytes downloading ConsoleTools-1.6.1.tgz ... Starting to download ConsoleTools-1.6.1.tgz (869,994 bytes) ...done: 869,994 bytes downloading Base-1.8.tgz ... Starting to download Base-1.8.tgz (236,357 bytes) ...done: 236,357 bytes install ok: channel://components.ez.no/Base-1.8 install ok: channel://components.ez.no/ConsoleTools-1.6.1 install ok: channel://pear.phpunit.de/phpcpd-1.3.5
phpcpd の確認
phpcpd コマンドがインストールされたことを確認します。
kaworu% rehash kaworu% which phpcpd /usr/local/bin/phpcpd kaworu% phpcpd --version phpcpd 1.3.5 by Sebastian Bergmann.
まったく意味のないソースコードでテストしてみます。
kaworu% phpcpd --min-lines 1 --min-tokens 10 . phpcpd 1.3.5 by Sebastian Bergmann. Found 2 exact clones with 14 duplicated lines in 1 files: - a.php:4-9 a.php:8-13 - a.php:4-13 a.php:20-29 42.42% duplicated lines out of 33 total lines of code. 1で終了しました
テストしたPHPコードは、以下のとおりです。
kaworu% cat -n a.php 1 <?php 2 function a ( ) 3 { 4 foreach ( $a as $k => $v) 5 { 6 echo $k, $v, PHP_EOL; 7 } 8 foreach ( $a as $k => $v) 9 { 10 echo $k, $v, PHP_EOL; 11 } 12 foreach ( $a as $k => $v) 13 { 14 echo $k, $v, PHP_EOL; 15 } 16 } 17 18 function b ( ) 19 { 20 foreach ( $a as $k => $v) 21 { 22 echo $k, $v, PHP_EOL; 23 } 24 foreach ( $a as $k => $v) 25 { 26 echo $k, $v, PHP_EOL; 27 } 28 foreach ( $a as $k => $v) 29 { 30 echo $k, $v, PHP_EOL; 31 } 32 } 33 ?>
検査するファイルについて
デフォルトでは、 .php の拡張子しか対象になりません。
--suffixes で .inc を対象にすることができます。
phpcpd --suffixes .inc /usr/local/share/pear
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12