PhpStorm 2020.3 ヘルプ

コードリファクタリング

リファクタリング(英語)は、新しい機能を作成せずにソースコードを改善するプロセスです。リファクタリングは、コードを安定した dry(英語) に保ち、保守を容易にできます。

リファクタリングの呼び出し

  1. リファクタリングするアイテムを選択します。エディターでプロジェクトツールウィンドウまたは式 / シンボルでファイル / フォルダーを選択できます。

  2. 選択可能なリファクタリングのリストを開くには、Ctrl+Alt+Shift+T を押します。

    refactor this popup

    または、特定のリファクタリング用のキーボードショートカットを使用することもできます。

リファクタリングを元に戻す必要がある場合は、Ctrl+Z を押します。

リファクタリングの変更をプレビューする

一部のリファクタリングでは、PhpStorm を適用する前に変更内容をプレビューすることができます。

  1. 潜在的な変更(リファクタリングが実行される使用箇所のリスト)を表示するには、リファクタリングのプレビューダイアログでプレビューをクリックします。

    Refactoring dialog
  2. 検索ツールウィンドウで行われる変更を確認します。 Delete を除外するか、不要と思われる Ctrl+X の変更を削除できます。

    Refactoring preview

  3. リファクタリング実行をクリックして、変更を続行します。

競合の解決

PhpStorm があなたのリファクタリングで問題に遭遇すると、衝突のリストとそれらの簡単な説明があるダイアログを開きます。

Refactoring conflicts dialog
  • 続行をクリックして問題を無視し、検索ツールウィンドウでプレビューを開きます。

  • ビューで競合を表示をクリックして、検索ツールウィンドウの競合エントリを開き、さらに処理します。

    例: Delete を押すかキャンセルをクリックしてリファクタリングからエントリを除外し、エディターに戻ることができます。

    Refactoring conflicts tool window

    リファクタリング設定を構成する

    1. 設定 / 環境設定ダイアログ Ctrl+Alt+S で、エディター | コード編集を選択します。

    2. コード編集ページのリファクタリングセクションでリファクタリングオプションを調整し、OK をクリックします。

    安全な削除 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 メソッドの呼び出しシグネチャーを変更します。 シグネチャーの変更

    関連ページ:

    検索ツールウィンドウ

    検索ツールウィンドウには、次の検索結果が表示されます。パス内検索 / 置換、使用箇所の検索、構造検索と置換、リファクタリングのプレビュー、データソースの使用箇所の検索、表、または列。各検索の結果は、別のタブに表示されるか、または新規タブで開くダイアログ設定に応じて、現在のタブの内容を置き換えます。デフォルトでは、ウィンドウが画面の下部に表示されます。ツールバーには、一連のボタン、結果ペイン、パス内置換およびリファクタリングのプレビュー操作用の追加ボタンがあります。検索結果がない場合、検索ツールウ...

    移動リファクタリング

    移動リファクタリングを使用すると、クラス、クラスメンバー(メソッド、フィールド、定数)、通常の関数、定数、HTTP リクエストファイル、およびプロジェクト内のディレクトリを移動できます。その際、PhpStorm はこれらの動きを追跡し、ソースコード内の移動されたシンボルへのすべての参照を自動的に修正します。ファイルまたはディレクトリを別のディレクトリに移動する:プロジェクトツールウィンドウでファイルまたはディレクトリを選択します。以下のいずれか 1 つを実行します: メインメニューからを選択しま...

    フィールドの導入

    フィールドの導入リファクタリングにより、新しいフィールドを宣言し、選択した式で初期化できます。元の式は、フィールドの使用箇所に置き換えられます。新しいフィールドは、デフォルトの可視性修飾子で作成されます。これは、設定 / 環境設定ダイアログのコードスタイル: PHP ページのコード生成タブで設定されます。その場でフィールドを抽出するフィールドに抽出するコードの一部内にキャレットを配置します。を押すか、メインメニューからを選択します。導入する式をフィールドとして選択します。PhpStorm がコー...

    名前の変更リファクタリング

    名前の変更リファクタリングを使用すると、コード内のすべての参照が自動的に修正されたシンボルとファイルの名前を変更できます。シンボル名を変更する名前を変更するアイテムを選択します。ファイルを選択するには、プロジェクトツールウィンドウで目的のファイルをクリックします。エディターでシンボルを選択するには、名前を変更するシンボルの名前にキャレットを置きます。プロジェクトツールウィンドウのシンボルを選択するには、メンバーが表示されていることを確認してから、目的のシンボルをクリックします。構造ビューでシンボ...

    シグネチャーの変更

    シグネチャーの変更リファクタリングは、関数シグネチャーに適用できるいくつかの異なる変更を組み合わせます。このリファクタリングを使用して、次のことができます。関数名と戻り値の型を変更する、パラメーターの追加、削除、並べ替え、パラメーターにデフォルト値を割り当てます、パラメーター名と型を変更する、関数呼び出し階層を介して新しいパラメーターを伝播する、ファンクションシグニチャを変更すると、PhpStorm は関数のすべての使用箇所を検索し、その変更を反映するように安全に変更できる関数のすべての呼び出し...