・ヮ・)あ、おはようございまーす
みなさん Xdebug 使ってますか?
ステップ実行便利ですよね!
つい先日 PHP8 で開発環境を作っていたらエラーがでました
Xdebug: [Config] The setting 'xdebug.xxx' has been renamed, see the upgrading guide at
Xdebugさんバージョン3になったんですね(知らなかった
2 から 3 に バージョンアップするにあたって 設定方法がいくつか 変わったらしく エラーになってました
Upgrading from Xdebug 2 to 3
自分の環境はドキュメント読みつつ新しい設定に直したのですが
同僚やお友達から「設定を手伝っておくれ」と何回か言われて いちいち調べ直すのが面倒になり変換ツールを作りました
Xdebug2の設定を3の設定に変換するやつ
↑ここから飛べます
注意事項
- やっつけで雑に作ってしっかりテストしていません
- メンテナンスをする気はありません
- 自己責任でお使いください
- ドキュメント読みましょう
- CSSはお亡くなりになりました
変換しきれない設定項目
Xdebug2 のときは 個別に設定できた項目が 1つにまとめられているものが いくつかあります
優先したい設定に合わせて選んでください
xdebug.start_with_requests
Xdebug2の設定が
xdebug.auto_trace = true
もしくは xdebug.remote_autostart = true
のときは xdebug.start_with_requests = yes
Xdebug2の設定が
xdebug.profiler_enable_trigger= true
もしくは xdebug.trace_enable_trigger= true
のときは xdebug.start_with_requests = trigger
xdebug.start_with_requests
はXdebug3 で新しく追加された設定項目です
ドキュメントを読んで設定しましょう
output_dirs
xdebug.gc_stats_output_dir
、 xdebug.profiler_output_dir
、 xdebug.trace_output_dir
これらの設定が xdebug.output_dirs
1つになったようです
別々に設定されていた方はどれか一つ選んで設定する必要があります
xdebug.trigger_value
xdebug.profiler_enable_trigger_value
、 xdebug.trace_enable_trigger_value
これらの設定が xdebug.trigger_value
1つになったようです
別々に設定されていた方はどれか一つ選んで設定する必要があります
削除された項目
xdebug.collect_includes
xdebug.collect_vars
xdebug.extended_info
xdebug.overload_var_dump
xdebug.remote_handler
xdebug.show_mem_delta
これらの項目が削除されたようです
詳しくはドキュメントを読んでください
サイレントで消えた項目?
アップグレードガイドには載ってないのですが Xdebug2 には存在していて Xdebug3 には存在しない項目がありました
xdebug.manual_url
xdebug.profiler_aggregate
xdebug.remote_cookie_expire_time
見落としだったらすみません
一応入力されたらそのままの値で出力するようにしました
おまけ
xdebug.mode = debug
xdebug.start_with_requests = yes
の状態で IDEでステップ実行を開始せずに コマンドラインからPHPファイルを実行すると
タイムアウトして接続できなかった というエラーが表示されます
Xdebug: [Step Debug] Time-out connecting to debugging claited: 200 ms. Tried: ホスト (through xdebug.client_host/xdebug.client_-(
Laravel で artisan コマンドを実行するときなど 出てきます
対処方法は
# XDEBUG_MODE環境変数を使って一旦すべての機能をoffにする
export XDEBUG_MODE=off && php artisan xxx
もしくは
; log_levelを0にする
; logが出力されなくなるので注意(log見る人いる?
xdebug.log_level=0
するとエラーが表示されなくなります!