LoginSignup
25
23

More than 5 years have passed since last update.

PHPStormでリファクタが捗るおすすめ6+1選

Last updated at Posted at 2018-06-03

はじめに

開発をしてく中でリファクタって大事だと思うのですが、人の手で修正を加えていくとしょうもないところでミスしたりします。
IDEができるところは任せてしまいたいなぁという方におすすめの小技集を紹介します。

実行環境

  • IDE
    • PHPStorm 2017.3.1
  • マシン
    • MacbookPro
      • OS
        • macOS High Sierra
      • バージョン
        • 10.13.1

1. クラス内のメソッドの命名変えたい

changingFunctionSignature.gif

shortcut key

  • ⌘ F6

説明

クラス内のメソッドを変更したい場合に使用します。
親クラスを継承した子クラスが存在して、指定したメソッドがオーバーライドしていた場合でも、子クラスのメソッドも含めて一括で変更します。
さらに、例えばシングルトンパターンを使ったりしてメソッドチェーンをしている場合でも、対象のメソッドの命名に変更を加えることが出来ます。
スクリーンショット 2018-06-03 17.22.16.png
さらにメソッドに対して引数を追加した場合にも上のダイアログ内で、変数名、デフォルト値を設定することでメソッドの引数、参照先両方に一括で変更を加えることが出来ます。

2. 冗長な変数の利用を置き換えたい

inlineVariable.gif

shortcut key

  • ⌥ ⌘ N

説明

メソッド内で変数で宣言を行ってるけど、これそのままreturnで返した方が処理がスッキリするというメソッドに対して置換を行なってくれます。

3. 指定の値に対して定数で外出ししたい

Const.gif

shortcut key

  • ⌥ ⌘ C

説明

ハードコーディングされて直接内部に書き込まれてしまっているマジックナンバーを抽出して定数で外出しします。

4. コンストラクタのメソッドから初期値、プロパティを作成したい

initializeFields.gif

shortcut key

  • ⌥ Enter => Initial Fieldsにカーソルを合わせEnter => ⌘A => Enter

説明

コンストラクタ内に定義されたメソッドからクラス内にコンストラクタで定義した引数のプロパティを作成し初期状態で$this->{引数名}の形で初期化を行ないます。
PHP 7.0以上で、引数に対してスカラー型のタイプヒンティングを行なっている場合は初期化したプロパティにdocコメントを自動で挿入してくれます。

5. staticで定義されたメソッドを別クラスに移動させたい

moveStaticMethodToClass.gif

shortcut key

  • staticメソッドにカーソルを合わせてF6

説明

staticメソッドのクラス移動です。
表示されるダイアログ内で複数メソッドにチェックを入れれば複数のメソッドを移動させることが出来ます。
ただ、現状メソッドの移動をサポートしているのはstaticメソッドのみでインスタンスメソッドに関してはこの機能を使えません。

6. メソッドの抽出

extractMethod.gif

shortcut key

  • ⌥ ⌘ M

説明

選択されたブロックに対して、メソッドの抽出を行います。
Visibilityからアクセス権の範囲を指定が出来て、かつdocコメントを追加するかstaticメソッドにするかをチェックボックスから選択することが出来ます。

7. PHPStormのリファクタであの機能ってショートカットキーなんだったけ...

スクリーンショット 2018-06-03 18.21.37.png

shortcut key

  • ⌃ T

説明

最強コマンド。
メソッドや変数などにカーソルを合わせて⌃ Tを押すとドロップダウンメニューが表示されて、そのドロップダウンメニュー内のメニューから選択することが出来ます。
とりあえずこのコマンドを覚えて行ってわざわざメニュー開くのが面倒になったら各コマンドを覚えて行くでもいいかも。

まとめ

PHPStormのリファクタの機能を中心に説明して行きました。
PHPStormの標準で備わっているリファクタの機能はかなり便利で強力です。
ただ、こういう便利なリファクタツールを使ったとしても、結局どこかでツールに頼らずにリファクタする場面が出てきた時が出てきます。
その時にどういうコードがリファクタしなきゃいけないのか、どうすれば綺麗になるのかをきちんと把握した上で、こういうツールを使って作業効率を捗っていけるといいですね。
ボーイスカウト精神でまた明日も一つソースを綺麗にして行きましょう!

25
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
23