構造検索と置換
従来の検索プロセスでは、ソースコードの構文とセマンティクスが考慮されていません。 正規表現を使用している場合でも、PhpStorm はコードを正規表現として扱います。 構造検索および置換 (SSR )アクションを使用すると、コード構造を考慮して、コード内の特定のコードパターンまたは文法構造を検索できます。
PhpStorm は、作成した 検索テンプレートと適用した 条件に基づいて、ソースコードのフラグメントを見つけて置き換えます。
ターゲットを構造的に検索する
メインメニューで に移動して、 構造検索 ダイアログを開きます。
構造置換 ダイアログにすばやく切り替えるには、
をクリックします。
構造検索 ダイアログで、次のいずれかの操作を行います。
テンプレートを一から作成する: テンプレートのリストから 下書きテンプレート を選択し、エディター領域にコードテンプレート (たとえば、コードを表す
$variable$) を入力します。カスタムテンプレートを将来使用するために保存するには、ダイアログツールバーの テンプレートの保存 アイコン(
)をクリックします。 テンプレートをインスペクションとして保存することもできます。

PhpStorm は、作成したテンプレートをテンプレートリストの 最近の項目 ノードに追加します。
既存のテンプレートのいずれかをプロトタイプとして使用する: 利用可能な既存のテンプレートのリストから必要なテンプレートを選択します。
class ExampleClass { public function WRONG() { } public function right() { } }クラス内で特定のメソッドを見つけましょう。
既存のテンプレートの一覧から、 の クラスのすべての public メソッドテンプレートを選択します。

プロジェクト全体でこれらの構造を検索するには、 Find をクリックします。
IntelliJ IDEA はエディターで見つかったコードの出現箇所を即座にハイライトします。
構造検索 ダイアログには、選択したテンプレートとそのフィルターの値が表示されます。 既存のフィルターを編集したり、新しい 条件を追加したりできます。 コード変数にキャレットを置き、フィルター領域を使用してフィルターを管理します。

例:
$b$変数に条件を追加します。Text 修飾子の場合は、次の正規表現を入力します。
\b[a-z]\w+\b
この場合、 構造検索 ダイアログで 大/小文字の区別 チェックボックスを選択すると、PhpStorm は最初のフィールドに小文字が含まれるフィールドのみを検索します。
選択した言語に応じて、追加のオプションも利用できます。
例: 次のオプションを確認します。
言語: リストを使用して、検索に含めるファイルの種類を選択します。 この場合は PHP です。
Target: リストを使用して、検索する項目を選択します。 この場合は
bです。
再帰: 選択すると、PhpStorm は再帰検索を実行し、ネストされたすべての項目が結果に含まれます。 例: 再帰 を有効にしてメソッド呼び出しを検索すると、PhpStorm は
foo(foo(foo()))内のネストされた呼び出しを検索します。 再帰 を無効にすると、外側の呼び出しのみが検索されます。挿入されたコード: 選択すると、HTML 内の JavaScript や Java 内の SQL などの挿入されたコードも検索に含まれます。
大/小文字の区別: このチェックボックスを選択すると、検索結果は検索対象の大文字小文字と一致します。
検索範囲(プロジェクト、モジュール、ディレクトリ、カスタムスコープ)を指定します。
Find をクリックします。
PhpStorm は、 Find ツールウィンドウに結果を表示します。

新しい検索テンプレート インスペクションを構造検索にカスタムテンプレートとして追加できます。 これを行うには、 Find ツールウィンドウで テンプレートからインスペクションを作成 をクリックします。 その後、このテンプレートを再利用してコードをインスペクションできます。
ターゲットを構造的に置き換える
メインメニューで へ移動します。
構造置換 ダイアログで、新規または 既存のテンプレートを検索に追加し、テンプレート領域を置き換えます。 置換テンプレートは、 検索テンプレートと同じ方法で保存できます。
置換テンプレート内の変数にフィルターを追加する必要がある場合は、対象の変数にキャレットを置き、フィルター領域を使用してフィルターを管理します。

フィルター領域では、あなたのように選択した内容に応じて、 フィルター条件を指定してください。
置換結果を絞り込むには、次のオプションを選択します。
完全修飾名を短縮する - 完全修飾クラス名を短縮名およびインポートに置き換えます。
整形 - 置き換えられたコードを自動的にフォーマットします。
静的インポートを使用する - 可能であれば、静的インポートを代わりに使用します。
PhpStorm は結果を Find ツールウィンドウに表示します。 PhpStorm は結果を Find ツールウィンドウに表示します。
Find ツールウィンドウでは、結果をさらに操作して、見つかったアイテムを 1 つずつ、または一度にすべて置き換えたり、潜在的な変更をプレビューしたりできます。
検索テンプレートを共有する
エクスポートまたはインポートすることで、検索テンプレートを同僚と共有できます。
構造検索 ダイアログ( )で、 新しい検索テンプレートを作成するか、既存のテンプレートを使用します。
テンプレートをエクスポートするには、
をクリックします。 PhpStorm は、テンプレートの XML 表現をクリップボードに追加します(クリップボードの内容を表示するには、 Ctrl+Shift+V を押します)。 この表現は、チャット、メール、フォーラムで他の開発者と共有できます。
テンプレートをインポートするには、共有 XML コードを任意の場所(メール、チャット、フォーラム)からコピー(Ctrl+C )し、 構造検索 ダイアログで
をクリックします。 PhpStorm は、XML コード表現を取得し、変数とスコープが存在する場合はそれを含むテンプレートに変換します。