static にする
static にするリファクタリングは、インスタンスメソッドを静的メソッドに変換し、メソッドのすべての呼び出し、実装、オーバーライドを自動的に修正します。
構造ビューでリファクタリングするメソッドを選択するか、エディターでメソッド名を右クリックします。選択のメインメニューまたはコンテキストメニューから、 を選択します。メソッドがパラメーターを必要とせず、このオブジェクトのプロパティまたはメソッドへのアクセスに依存しない場合は、ダイアログを表示せずに、静的メソッドがサイレントで作成されます。
class MyClass { private function getFormattedDate() { $format = getSettings()['dateFormat']; return time($format); } }class MyClass { private static function getFormattedDate() { $format = getSettings()['dateFormat']; return time($format); } }より複雑なケースでは、メソッドを static にするダイアログが開きます。
メソッドを static にするダイアログで、次のいずれかの操作を行います。
現在
$this
を介して既存のオブジェクトを使用している場合は、名前のパラメーターとしてオブジェクトを追加するチェックボックスを選択して、パラメーターを介してオブジェクトのインスタンスを渡します。下のフィールドに、生成するパラメーターの名前を指定してください。リファクタリング後、新しいパラメーターは PHPDoc ブロックに記録されます。class MyClass { private function getFormattedDate() { $format = $this->getSettings()['dateFormat']; return time($format); } }class MyClass { /** * @param MyClass $instance * @return */ private static function getFormattedDate($instance) { $format = $instance->getSettings()['dateFormat']; return time($format); } }クラスのプロパティにアクセスする場合は、新しく作成した静的メソッド内のオブジェクトにアクセスするのではなく、プロパティのパラメーターを追加する領域を使用してプロパティの値をパラメーターとして渡します。
プロパティのパラメーターを追加するチェックボックスを選択します。
可能性のあるすべてのパラメーターを示すパラメーターリストで、値を渡すものの横にあるチェックボックスを選択します。
class MyClass { private function getFormattedDate() { $format = $this->timeFormat; return time($format); } }class MyClass { /** * @param $timeFormat * @return int; */ private static function getFormattedDate($timeFormat) { $format = timeFormat; return time($format); } }
結果をプレビューするには、プレビューをクリックし、検索ツールウィンドウでのリファクタリングの結果を調べます。問題が発生しない場合は、変更を適用します。
関連ページ:
検索ツールウィンドウ
検索ツールウィンドウには、次の検索結果が表示されます。パス内検索 / 置換、使用箇所の検索、構造検索と置換、リファクタリングプレビュー、データソース、テーブル、列の使用箇所の検索。検索ツールウィンドウには複数のタブを含めることができます。デフォルトでは、検索ごとに現在のタブで検索結果が更新されます。各検索の結果を別のタブに表示するには、ツールウィンドウのヘッダーを右クリックし、を選択します。デフォルトでは、検索ツールウィンドウが画面の下部に表示されます。これには、一連のボタン、結果のペイン、パス...
コピーして移動リファクタリング
移動リファクタリングを使用すると、クラス、クラスメンバー(メソッド、フィールド、定数)、通常の関数、定数、HTTP リクエストファイル、プロジェクト内のディレクトリを移動できます。その際、PhpStorm はこれらの動きを追跡し、ソースコード内の移動されたシンボルへのすべての参照を自動的に修正します。ファイルまたはディレクトリを別のディレクトリに移動する:プロジェクトツールウィンドウでファイルまたはディレクトリを選択します。以下のいずれか 1 つを実行します: に移動します。選択のコンテキストメ...