Sublime Text2からPhpStormに乗り換えて二ヶ月、だいぶ慣れてきたので便利だと思うところを。
PHP歴がまだ半年ほどなので、他の統合開発環境はちゃんと使った経験ないんですが、周りの人の意見を聞く限りではPhpStormが一番手間なく便利な環境になるのではないかと思ってますが……。
自分は、VM上のDebianにLinux版のPhpStorm, apache, xdebug, phpunit, gitで開発しているので他の環境だと若干違う部分があるかもしれません。
Xdebugとの連携
Xdebugと連携してステップ実行、変数の参照が可能。これは素晴らしく便利。
Xdebugはもちろん導入しないといけませんがpeclで一コマンド、設定は基本的にphp.iniにXdebug周り + PhpStormを使用するマシンのIPを書いておくだけ。
(*) php.iniはapache経由用とphpunit用にcliのもの、など複数あるかもしれません
あとは
- Settings -> xdebugで検索、出てくる設定項目に全部チェック入れる
- Run -> Start Listen PHP debug connections
- ブラウザでリクエスト送ると初回はソースのマッピングについて聞かれるので適当に設定する
で使えるようになるはずです。
ソースのマッピングはきちんと設定できるので、Linuxサーバー上で動いているものをWindows上のPhpStormからネットワークディレクトリ上のファイルを編集しつつリモートデバッグ実行、も可能です。
ただ、xdebugでリモートデバッグ実行をenabled、IPを間違えて設定するとすさまじくphpの実行が遅くなるので注意。
xdebugはプロファイルの取得も超絶便利なので絶対インストールしたい。
gitとの連携
gitのリポジトリを設定すると状態を把握してきちんと連動してくれる。
自分は基本的にgitコマンドで運用してますが、alt + 9でmodifiedのファイルだけリストアップしたり、diffが見やすいのでリリース前にブランチ間の比較したり、というところでは使ってます。あまりコマンドが好きでなければPhpStormのGUIだけでgitの運用するのも不可能ではない、かもしれない。
ファイルの指定
Ctrl + nでクラス名、Ctrl + Shift + nファイル名、どちらも覚えてる名前の一部を入力してくだけでインクリメントに補完して候補を表示してくれる。Sublime Text 2 のCtrl + pに近い機能。ただ、ファイル名の場合、ファイル名とディレクトリはきちんと区別しないといけないのでそこはSublime Text 2の方が好みの動きだった。
これ以外にも、現在のファイルのパスを利用して色々他のファイルを開いたり、Projectペインの中を移動できたり、細かいところでファイラーが使いやすい。
phpのログもtail -fを下のペインで実行させておいて、エラーが出たらログ内のソースファイル名 + 行番号をクリックで該当箇所に移動とかできる。ただ、これはマッピングを聞かれた記憶がないので、php実行してるマシンとPhpStormの動いているマシンが同じでないと難しいかもしれない。
viっぽい操作モード
エディタ変えるたびに基本的なコマンド覚えたり、キーマップを変更したりするのが面倒なので個人的には必須。ideavim導入すればだいたい違和感なく使えます。
key promoterというpluginを導入すると、マウスで操作するたびにショートカットを表示してくれるが、ideavim入れてると違ってたりする。
PhpUnitとの連携
Alt + Shift + F10でテスト実行 -> ソース変更 -> Ctrl + Shift + F10でテスト実行 -> ソース変更、とウィンドウ移動せずに無限ループできるので便利。
その他
Ctrl + クリックで定義への移動、メソッド定義等コメントのひな形の生成、各種refactor系の機能とかも便利だけど書ききれない。
reddit:I just got PHPStorm. I love it. What are some great hacks and practices worth knowing?にも色々書いてあって知らない機能が結構あった。Local Historyとか。