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