PhpStorm 2026.1 Help

メンバーのプルアップ、メンバーのプッシュダウン

メンバーのプルアップ リファクタリングでは、クラスメンバーを親クラスに移動できます。 これは、クラス階層の最下部から機能を追加し始め、より一般的なケースでも使用できることに気づいたときに役立ちます(そうでなければ、コードの一部が親クラスで廃止される可能性がありますが、その子供の)。 メンバーのプルアップリファクタリングでは、あるクラスのメソッドやフィールドを手動でコピーして別のクラスに貼り付け、内部参照をメンバーに修正する必要がなくなりました。

メンバーのプッシュダウン リファクタリングは、クラスメンバーをサブクラスに移動することによってクラス階層をクリーンアップできます。 その後、メンバーは直接サブクラスにのみ再配置されます。

メンバーのプルアップ

  1. 親クラスに移動するクラスを選択します。

  2. メインメニューまたはコンテキストメニューから リファクタリング | メンバーのプルアップ を呼び出します。 「メンバーのプルアップ 」ダイアログが表示されます。

  3. 宛先オブジェクト(親クラス)を選択します。

  4. メンバー セクションで、移動するメンバーを選択します。

  5. 選択したメンバーを宛先に移動するには、 リファクタリング をクリックします。

サンプル

親クラス Vehicle を拡張するクラス があるとします。 printPassengers() メソッドと $numOfPassengers フィールドを から Vehicle にプルしてみましょう。

  1. クラス 内にキャレットを配置し、コンテキストメニューから リファクタリング | メンバーのプルアップ ... を選択します。

  2. 開いた メンバーのプルアップダイアログ で、 printPassengers()$numOfPassengers の隣にあるチェックボックスを選択します。 PhpStorm は、 $numOfPassengers の可視性が 非公開から 保護に変更されることを通知します。

    ps_pull_members_dialog_php_example.png
  3. リファクタリング をクリックしてください。

リファクタリング後、クラスは次のようになります。

abstract class Vehicle { } class Car extends Vehicle { protected $weight; private $numOfPassengers; function __construct($weight,$numOfPassengers) { $this->weight = $weight; $this->numOfPassengers = $numOfPassengers; } protected function printWeight() { echo 'Weight = ' . $this->weight; } protected function printPassengers() { echo 'Number of passengers = ' . $this->numOfPassengers; } }
abstract class Vehicle { protected $numOfPassengers; protected function printPassengers() { echo 'Number of passengers = ' . $this->numOfPassengers; } } class Car extends Vehicle { protected $weight; function __construct($weight,$numOfPassengers) { $this->weight = $weight; $this->numOfPassengers = $numOfPassengers; } protected function printWeight() { echo 'Weight = ' . $this->weight; } }

メンバーのプッシュダウン

  1. エディターで、メンバーをプッシュダウンする必要があるクラスを開きます。

  2. メインメニューまたはコンテキストメニューから、 リファクタリング | メンバーのプッシュダウン を選択します。 メンバーのプッシュダウンダイアログ は、プッシュダウンされるメンバーのリストを表示します。

  3. プルダウンするメンバー 領域で、移動するメンバーを選択します。 キャレットのメンバーはすでに選択されていることに注意してください。

    メンバーをプッシュすると問題が発生する可能性がある場合は、赤いハイライトで通知されます。 状況が無人の場合、リファクタリング後にエラーが発生することを意味します。 PhpStorm が、問題検出ダイアログを表示し、問題を無視または修正することができます。

  4. プレビューと変更の適用

サンプル

Vehicle クラス、 Vehicle を拡張する クラス、 Vehicle も拡張する Truck クラスがあるとします。 開始() メソッドを親クラス Vehicle からその子クラス および Truck にプッシュしましょう。

  1. キャレットを クラス内に配置し、コンテキストメニューから リファクタリング | メンバーのプッシュダウン を選択します。

  2. 開いた メンバーのプッシュダウンダイアログ で、 開始() の横にあるチェックボックスを選択し、 リファクタリング をクリックします。

    ps_pull_members_dialog_php_example.png

リファクタリング後、クラスは次のようになります。

abstract class Vehicle { protected $code; public $name; protected function start() { echo "Let's start!"; } } class Car extends Vehicle { protected $weight; function __construct($weight) { $this->weight = $weight; } } class Truck extends Vehicle { protected $length; function __construct($length) { $this->length = $length; } }
abstract class Vehicle { protected $code; public $name; } class Car extends Vehicle { protected $weight; function __construct($weight) { $this->weight = $weight; } protected function start() { echo "Let's start!"; } } class Truck extends Vehicle { protected $length; function __construct($length) { $this->length = $length; } protected function start() { echo "Let's start!"; } }
2026 年 5 月 22 日