クラスの抽出
PhpStorm では、クラスのメソッドやプロパティを新しいクラスに抽出するリファクタリングが使用できます。 これらのリファクタリングは、クラスが大きくなりすぎて「実行することが多すぎる」場合に役立ちます。 このような場合は、クラスをより小規模でまとまりのあるクラスに分割するとよいでしょう。 さらに、 php ファイルで定義された関数を新しいクラスに抽出できます。 これは、関連する機能をユーティリティクラスにグループ化する場合、名前空間のないメソッドの衝突を回避する場合、オブジェクト指向の方法でコードベースを表現する場合に便利です。
クラスに抽出するコード部分にキャレットを置きます。 PHP クラスのプロパティとメソッド、およびスタンドアロン関数を抽出できます。
に移動するか、 Ctrl+Alt+Shift+T を押してポップアップメニューで クラスの抽出 を選択します。
開いたダイアログで、ターゲット名前空間と宛先ディレクトリ、新しいクラスの目的の名前、抽出するクラスメンバーまたはスタンドアロン関数を指定します。 クラスのフィールドのアクセサーメソッドとミューテーターメソッド(getter および setter)を生成するには、 アクセサーを生成する チェックボックスをオンにします。

変更内容をプレビューし、 OK をクリックします。
クラスの抽出の例
次の例では、 bar メソッドが ソース クラスから新しい ターゲット クラスに抽出されます。 リファクタリング中に、次のことが起こります。
PhpStorm は新しいクラス
ターゲットを作成し、barメソッドの実装をこのクラスに移動します。ターゲットクラスのインスタンスは、コンストラクターを介してソースにインジェクションされます。プライベートプロパティ
fooへのアクセスを提供するために、get_foogetter メソッドがソースクラス内で生成されます。 これは、 クラスに抽出ダイアログで アクセサーを生成する オプションを有効にすることで実現されます。(new Source())->bar()メソッド呼び出しは変更されませんが、実際の実行はターゲットクラスのbarメソッドに委譲されるようになりました。