重複を分析する
PhpStorm は、 重複したコード箇所 インスペクションを使って、特定のファイルセット内の繰り返しコードブロックを見つけるのに役立ちます。 コードを記述または貼り付けて複製を作成すると、PhpStorm がすぐにそれをハイライトし、クイックフィックスを提案します。
インスペクションには いくつかの設定が搭載されており、動作を変更することができます。
選択したファイルセットのすべての重複を一度に表示するには、 名前でインスペクションを実行します。

インスペクションを構成する
Ctrl+Alt+S を押して設定を開き、 を選択します。
必要な インスペクションプロファイルが プロファイル リストで選択されていることを確認してください。
インスペクション ダイアログの検索フィールドに
重複したコードフラグメントと入力して、リストからインスペクションを見つけます。インスペクションをクリックすると、その設定が右側に表示されます。

重大度: リストから 重大度レベルを選択するか、 新しい重大度レベルを作成します。
スコープ: インスペクションが実行されるファイルの範囲 (分析対象となるコード) を選択します。
重複の表示: 複製が表示されるファイルのセットを選択します。
誤検知を最小限に抑えるには、同じモジュールまたはファイル内の重複のみを検出するように分析を制限します。
次よりも単純な重複をスキップ: 選択したファイルセットの残りのコードと比較されるコードフラグメントのサイズを単位で設定します。
デフォルト値は、精度と見つかった重複の数の間の妥協点です。 より正確な結果を得るには、値を大きくします。 より多くの重複を検索するには、値を減らします。
ユニットの正確な値は次のように計算できます:
units = 2 * number of statements + number of expressions。最小出現箇所: コード断片が重複とみなされる最小出現回数を選択してください。
このインスペクションが動作する予定の言語を選択してください。
変更を適用して、ダイアログを閉じます。
重複の検索中に名前と値を無視する
ファイルタイプごとに、名前や値だけが異なる同じエンティティを重複として扱うかどうか定義できます。
Ctrl+Alt+S を押して設定を開き、 を選択します。
分析を適用するファイルタイプを選択し、匿名化したい構成の横のチェックボックスを選んでください。

例: 変数名または識別子名 と 関数名またはフィールド名 が有効になっている場合、以下の 2 つの機能は重複していると見なされます。
function multiply($a, $b) { return ($a * $b); } function multiplicator($c, $d) { return ($c * $d); }変更を適用して、ダイアログを閉じます。
このダイアログでは、重複分析とプロジェクト分析の両方から特定の言語を完全に除外することもできます。 このページで言語を無効にすると、その言語は インスペクション設定で非表示になります。
重複を手動で見つける (非推奨)
メインメニューで へ移動します。
コード重複分析スコープの指定 ダイアログで、解析 スコープ を選択してください:プロジェクト全体、現在のファイル、未コミットのファイル(バージョン管理下のプロジェクトの場合)、またはカスタムスコープです。 解析にテストソースを含めることもできます。
コード重複解析設定 ダイアログで、分析したい言語を選択します。
言語ごとに、オプションをチェックして分析設定を定義します。 例: コードフラグメントが重複していると見なされるように同一の一致を要求するか、コード構成要素が重複していると見なされないような一定の制限を指定することができます(たとえば、ソースコードで各
if構成要素を報告しないように)重複ツールウィンドウで、解析結果を確認してください。

ツールウィンドウの左ペインで重複のリストを表示します。
右側のペインに、見つかった重複間の相違点が表示されます。 矢印ボタンを使用して、選択した重複を差分ビューアーのセクションの 1 つに配置し、コードの断片を比較します。
ソースに移動 または ソースの表示 コンテキストメニューコマンドを使用して、エディター内の重複した場所に移動します。
メソッドの抽出リファクタリングを自動的に見つけてハイライトされたコードの反復ブロックに適用することにより、ソースコードから重複を排除します。