メンバーをプルアップ、メンバーをプッシュダウンする
メンバーのプルアップリファクタリングでは、クラスメンバーを親クラスに移動できます。これは、クラス階層の最下部から機能を追加し始め、より一般的なケースでも使用できることに気づいたときに役立ちます(そうでなければ、コードの一部が親クラスで廃止される可能性がありますが、その子供の)。メンバーのプルアップリファクタリングでは、あるクラスのメソッドやフィールドを手動でコピーして別のクラスに貼り付け、内部参照をメンバーに修正する必要がなくなりました。
メンバーのプッシュダウンリファクタリングは、クラスメンバーをサブクラスに移動することによってクラス階層をクリーンアップできます。その後、メンバーは直接サブクラスにのみ再配置されます。
メンバーのプルアップ
親クラスに移動するクラスを選択します。
メインメニューまたはコンテキストメニューからメンバーのプルアップ」ダイアログが表示されます。
を呼び出します。「宛先オブジェクト(親クラス)を選択します。
メンバーセクションで、移動するメンバーを選択します。
選択したメンバーを宛先に移動するには、リファクタリングをクリックします。
サンプル
親クラス Vehicle
を拡張するクラス Car
があるとします。printPassengers()
メソッドと $numOfPassengers
フィールドを Car
から Vehicle
にプルしてみましょう。
クラス
Car
内にキャレットを配置し、コンテキストメニューから を選択します。開いたメンバーのプルアップダイアログで、
printPassengers()
と$numOfPassengers
の隣にあるチェックボックスを選択します。PhpStorm は、$numOfPassengers
の可視性が非公開から保護に変更されることをお知らせします。リファクタリングをクリックします。
リファクタリング後、クラスは次のようになります。
メンバーのプッシュダウン
エディターで、メンバーをプッシュダウンする必要があるクラスを開きます。
メインメニューまたはコンテキストメニューから、メンバーのプッシュダウンダイアログは、プッシュダウンされるメンバーのリストを表示します。
を選択します。プルダウンするメンバー領域で、移動するメンバーを選択します。キャレットのメンバーはすでに選択されていることに注意してください。
メンバーをプッシュすると問題が発生する可能性がある場合は、赤いハイライトで通知されます。状況が無人の場合、リファクタリング後にエラーが発生することを意味します。PhpStorm は問題を無視または修正することができる問題検出ダイアログを表示します。
プレビューと変更の適用
サンプル
Vehicle
クラス、Vehicle
を拡張する Car
クラス、Vehicle
も拡張する Truck
クラスがあるとします。start()
メソッドを親クラス Vehicle
からその子クラス Car
および Truck
にプッシュしましょう。
キャレットを
Car
クラス内に配置し、コンテキストメニューから を選択します。開いたメンバーのプッシュダウンダイアログで、
start()
の横にあるチェックボックスを選択し、リファクタリングをクリックします。
リファクタリング後、クラスは次のようになります。
関連ページ:
![](https://pleiades.io/icons/phpstorm.png)
メンバーのプルアップダイアログ
このダイアログを使用して、選択したメンバーを選択した親クラスにプルアップします。<class_name> のメンバーをプルアップ宛先オブジェクト(親クラス)を選択します。プルアップするメンバーこの領域で、移動するメンバーを選択します。メンバーをプルアップ、メンバーをプッシュダウンするメンバーのプッシュダウンダイアログ
![](https://resources.jetbrains.com/help/img/idea/2024.3/ps_move_namespace_refactoring_move_files_dialog.png)
コピーして移動リファクタリング
移動リファクタリングを使用すると、クラス、クラスメンバー(メソッド、フィールド、定数)、通常の関数、定数、HTTP リクエストファイル、プロジェクト内のディレクトリを移動できます。その際、PhpStorm はこれらの動きを追跡し、ソースコード内の移動されたシンボルへのすべての参照を自動的に修正します。ファイルまたはディレクトリを別のディレクトリに移動する:プロジェクトツールウィンドウでファイルまたはディレクトリを選択します。以下のいずれか 1 つを実行します: に移動します。選択のコンテキストメ...