コードリファクタリング
リファクタリング(英語)は、新しい機能を作成せずにソースコードを改善するプロセスです。リファクタリングは、コードを安定させ、dry(英語) に保ち、保守を容易にできます。
リファクタリングの呼び出し
リファクタリングするアイテムを選択します。エディターでプロジェクトツールウィンドウまたは式 / シンボルでファイル / フォルダーを選択できます。
選択可能なリファクタリングのリストを開くには、Ctrl+Alt+Shift+T を押します。
または、特定のリファクタリング用のキーボードショートカットを使用することもできます。
フィールドのカプセル化、static メンバーの移動、委譲の抽出、インターフェースの抽出、スーパークラスの抽出などの拡張範囲のリファクタリング操作用にマルチキャレット選択を作成することもできます。この機能を利用するには、リファクタリングを適用する各メンバーにキャレットを置きます。IDE はリファクタリングダイアログでこれらのメンバーを自動的に事前選択してチェックします。
リファクタリングを元に戻す必要がある場合は、Ctrl+Z を押します。
リファクタリングの変更をプレビューする
一部のリファクタリングでは、PhpStorm を使用して変更を適用する前に変更をプレビューできます。このようなリファクタリングアクションのダイアログウィンドウには、プレビューボタンがあります。
ダイアログでプレビューをクリックすると、潜在的な変更 (リファクタリングが実行される使用箇所のリスト) が表示されます。
開いた検索ツールウィンドウで、行われる変更を確認します。Delete を除外したり、不要と思われる Ctrl+X の変更を削除したりできます。
リファクタリング実行をクリックして、変更を続行します。
競合の解決
PhpStorm があなたのリファクタリングで問題に遭遇すると、衝突のリストとそれらの簡単な説明があるダイアログを開きます。
![競合のリファクタリングダイアログ Refactoring conflicts dialog](https://resources.jetbrains.com/help/img/idea/2024.1/ps_refactoring_conflicts_dialog.png)
問題を無視して続行するには、リファクタリングをクリックします。
検索ウィンドウで開くをクリックして、検索ツールウィンドウの競合エントリを開き、さらに処理します。
検索ツールウィンドウで、リファクタリング実行を選択してリファクタリングを適用するか、キャンセルをクリックしてエディターに戻ることができます。
リファクタリング設定を構成する
設定ダイアログ(Ctrl+Alt+S)で、 を選択します。
コード編集ページのリファクタリングセクションでリファクタリングオプションを調整し、OK をクリックします。
PhpStorm でサポートされている最も人気のあるリファクタリング
安全な削除 | Alt+Delete | ソースコードで参照されているファイルを削除しないようにします。 | |
コピー / 移動 | F5 / F6 | 要素をコピー / 移動します。 | |
メソッドの抽出 | Ctrl+Alt+M | これらのリファクタリングアクションは、コードの重複を減らすのに役立ちます。 | |
定数の抽出 | Ctrl+Alt+C | 新しい定数を宣言し、それを選択された式で初期化します。 | |
フィールドの導入 | Ctrl+Alt+F | 新しいクラスプロパティを宣言し、選択した式で初期化します。 | |
パラメーターの抽出 | Ctrl+Alt+P | メソッド宣言に新しいパラメーターを追加し、それに応じてメソッド呼び出しを更新します。 | |
変数の導入 | Ctrl+Alt+V | 新しい変数を宣言し、選択した式で初期化します。 | |
名前変更 | Shift+F6 | 要素の名前を変更します。 | |
インライン化 | Ctrl+Alt+N | 要素をインライン化します。抽出の逆の働きをします。 | |
シグネチャーの変更 | Ctrl+F6 | メソッドの呼び出しシグネチャーを変更します。 |
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_multi_selection.png)
複数のカーソルと選択範囲
PhpStorm エディターで入力、コピー、貼り付けを行う場合、複数のカーソルを切り替えて、アクションが複数の場所に同時に適用されるようにすることができます。コード補完やライブテンプレートなどの高度なエディターアクションもサポートされており、各キャレットに適用されます。ファイルに追加できるキャレットの数は 1000 に制限されています。この制限を増やす場合は、カスタム JVM オプションを開き、次の行を追加します: 最近追加されたキャレットはプライマリと見なされます。現在のエディターライン、補完リ...
![](https://pleiades.io/icons/phpstorm.png)
検索ツールウィンドウ
検索ツールウィンドウには、次の検索結果が表示されます。パス内検索 / 置換、使用箇所の検索、構造検索と置換、リファクタリングプレビュー、データソースの使用箇所の検索、表、または列。検索ツールウィンドウには、複数のタブを含めることができます。デフォルトでは、検索結果は検索ごとに現在のタブで更新されます。各検索の結果を個別のタブに表示するには、ツールウィンドウのタイトルバーを右クリックし、を選択します。デフォルトでは、検索ツールウィンドウが画面の下部に表示されます。これには、一連のボタン、結果のペイ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_move_namespace_refactoring_move_files_dialog.png)
コピーして移動リファクタリング
移動リファクタリングを使用すると、クラス、クラスメンバー(メソッド、フィールド、定数)、通常の関数、定数、HTTP リクエストファイル、プロジェクト内のディレクトリを移動できます。その際、PhpStorm はこれらの動きを追跡し、ソースコード内の移動されたシンボルへのすべての参照を自動的に修正します。ファイルまたはディレクトリを別のディレクトリに移動する:プロジェクトツールウィンドウでファイルまたはディレクトリを選択します。以下のいずれか 1 つを実行します: に移動します。選択のコンテキストメ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_enableInplaceRefactoringCleared.png)
フィールドの導入
フィールドの導入リファクタリングを使用すると、新しいフィールドを宣言し、選択した式で初期化できます。元の式は、フィールドの使用箇所に置き換えられます。新しいフィールドは、設定ダイアログ () のコードスタイル: PHP ページのコード生成タブで設定されたデフォルトの可視性修飾子を使用して作成されます。その場でフィールドを抽出するフィールドに抽出するコード部分内にキャレットを置きます。を押すか、メインメニューでに移動します。導入する式をフィールドとして選択します。PhpStorm がコード内で複数の...
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_rename_dialog.png)
名前の変更リファクタリング
名前の変更リファクタリングを使用すると、コード内のすべての参照が自動的に修正されたシンボルとファイルの名前を変更できます。シンボル名を変更する名前を変更するアイテムを選択します。ファイルを選択するには、プロジェクトツールウィンドウで目的のファイルをクリックします。エディターでシンボルを選択するには、名前を変更するシンボルの名前にキャレットを置きます。プロジェクトツールウィンドウのシンボルを選択するには、メンバーが表示されていることを確認してから、目的のシンボルをクリックします。構造ビューでシンボ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_change_signature_dialog.png)
シグネチャーの変更
シグネチャーの変更リファクタリングは、関数シグネチャーに適用できるいくつかの異なる変更を組み合わせます。このリファクタリングを使用して、次のことができます。関数名と戻り値の型を変更する、パラメーターの追加、削除、並べ替え、パラメーターにデフォルト値を割り当てます、パラメーター名と型を変更する、関数呼び出し階層を介して新しいパラメーターを伝播する、ファンクションシグネチャーを変更すると、PhpStorm は関数のすべての使用箇所を検索し、その変更を反映するように安全に変更できる関数のすべての呼び出...