Xdebugがバージョン3になってました。
環境は、Windows+PHPStorm+PHP7.4(Xampp)です。
PHP7.2→PHP7.4 にしたくて、Xamppを新しくし、Xdebugを設定しなおして気づきました。
まず、PHPStormでデバッグできず、ちょっとはまりました。
注意点は
①PHPStormのバージョンが2020.3以降じゃないとXdebug3に対応していない
②ポート番号がデフォルト9003になっている
です。
さて、表題の話なんですが、まず、デバッグしたいために最初は次のようにphp.iniを設定していました。
zend_extension = D:\xampp2\php\ext\php_xdebug-3.0.1-7.4-vc15-x86_64.dll
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9001
xdebug.mode = debug
最後のxdebug.modeがポイントです。
xdebug.mode = debug
にしないとPHPStormでデバッグできません。(ほかのIDEで試してないのでほかのIDEでどうかわかりません。)
しかし、このままにしておくと、PHPerは必ず使うであろう、var_dump関数の実行結果が美しく表示されません。
こんなん見てられないし、辛いですよね~(>_<)
xdebug.mode = develop
にすると、美しく整形されて表示されます。developがデフォルトだそうです。
しかし、このままではデバッグできません。
一体どうして…。
と、ぼんやりXdebugの作者のDerickさんのTwitterを見ていたら
Xdebug3のModeについて説明動画があるじゃないですか!!!
Xdebugを作ってくれているだけでもありがたいのに、動画まで…。その優しさに涙が溢れますね…。(>_<)
というわけで、上記を見ると、modeが二つ平行で設定できることがわかります。
xdebug.mode = develop,debug
上記のように設定すると、var_dumpも美しく出力され、デバッグもできました!⊂(^-^)⊃
ちな、Xdebug関係のphp.iniの設定を下記に書いておきます。(私はデバッグのポートを9001で運用しています。)
[xdebug]
zend_extension = D:\xampp2\php\ext\php_xdebug-3.0.1-7.4-vc15-x86_64.dll
xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.var_display_max_children=-1
xdebug.var_display_max_data=-1
xdebug.var_display_max_depth=-1
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9001
xdebug.mode = develop,debug
php.iniを変更した後は、Webサーバーの再起動を忘れないように!
ありがとう、Derickさん!ロンドンいろいろ大変そうですが、がんばってください。