先日からJet BrainsのRuby開発環境である RubyMine を試してる。
大体、通常開発に使ってるのはEmacsかOS Xだと BBEdit なんだけど、時々他のエディタや環境に浮気して、またいつか戻ってくるみたいな繰返しが多い。サーバー上ではviが多いけど。
今回は、Komodo IDE/EditやATOM、Visual Studio Codeなどを試しながら、これまで有償かつ言語毎にライセンスが別れてて避けてたJet BrainsのIDEも試してみた。
RubyMineを試して結構よかったので、PhpStorm どうだろうと試してみて、デバッガーで少々設定につまったのでメモとして記録。
評価は、OS X上のPhpStorm 2016.1.2で行なってます。
PHP実行環境を設定
PreferencesでPHPの実行環境設定を行う。(i)ボタンを押すと現在のPHPのConfigurationが表示できるので、iniなんかの設定状態も確認できる。
xdebugの設定
zend_extensionの値は、環境に応じて。
今回、xdebug.remote_autostartは1にしませんでした。xdebug.remote_autostartを1にすると、サーバーにPHPのリクエストが来る度に、かならずxdebugのセッションがはじまり実行が最初に止ります。開発だけのサーバーならいいのだけど、他でも利用してると常に止まるのでそれは避けたい所。
xdebug.idekeyはPhpStorm側の設定と合せるようです。
Run/Debug Configurationの(+)ボタンから、PHPのビルトインWebサーバーを使うか、httpdなどのサーバーを使うか等のデフォルトを選んで、オプションを設定していくような形になります。
Webアプリケーションをデバッグ開始する時
xdebug.remote_autostartを無効にしてあるので、デバッグを開始する時は一手間必要です。
こちらのページから、開始用のブックマークレットを作成します。IDE keyをxdebugのiniに設定したものを入力して”GENERATE”ボタンを押すと、デバッグ用のブックマークレットリンクが出来る。
それをブラウザのブックマークレットに登録しておけば、デバッグの開始・停止が楽に制御できます。
xdebugは、xdebug.remote_autostartが設定されてない時は、特定のCookie値の設定を見て、デバッグの開始を決定してるらしい。
この辺に記載がある。
メニューのRunにある、「(Start |Stop) Listening for PHP Debug Connections」を選択して、デバッグコネクションを監視する状態にしておく必要があります。
また「Break at first line in PHP scripts」にチェックが入ってるとかならずPHPの実行の最初の行で止まるので、ブレイクポイント張ってるなら、チェック外した方がストレスなくていい。
その他
気になる所としては、xdebugが有効になっているからか、リクエストからデバッグ開始までが凄く遅い。
現在の評価環境は、OS X上でphpもhttpdも動かしてるけど、自前の環境でブラウザがリクエストを出してから、20〜30秒位かかってる気がする。
単純にステップ実行と値を見るだけじゃなく、変更や式の評価もできるんでまだいいけど、繰返し実行には辛い時間です。
この辺は設定の変更なんかで直るのかもしれないけど、一般的にxdebugが動いてると遅いのは仕方ないみたい。
composerでも警告が表示されてて、こんなページも用意されてるみたいだし。
現状、開発が仕事になってない状態なんだけど、まあ趣味というか仕事に備えるというか、そんな感じで…
人は、これを現実逃避という。