Xdebug を使用した PHP のデバッグ

Xdebug は、PHP アプリケーションの分析と最適化に役立つ強力な PHP デバッグおよびプロファイリング ツールです。ステップバイステップのデバッグ、パフォーマンス測定、スタック トレースなどの機能をサポートしているため、トラブルシューティングがはるかに簡単になり、コードに対するより良い洞察が得られます。以下は、VSCode 内で使用するための簡単なセットアップ ガイドです。


Xdebugをインストールする

例として、現在の Ubuntu システムに Xdebug をインストールします。:

sudo apt-get install -y php8.4-xdebug

最後に、プロファイリングおよびトレース データを後で保存するための一時ディレクトリを作成します。:

mkdir -p /tmp/xdebug

Xdebug を構成する

インストール後、Xdebug を設定します。これを行うには、それを編集します ja/php.ini:

vi /etc/php/8.4/fpm/conf.d/custom.ini

以下は賢明な基本構成です:

[xdebug]
; mode (see: https://xdebug.org/docs/all_settings#mode)
;   reasonable default
xdebug.mode=debug,profile
;   disabled
;xdebug.mode=off
;   step debugging
;xdebug.mode=debug
;   performance profiling (be aware of load/space)
;xdebug.mode=profile
;   trace profiling (record args)
;xdebug.mode=trace

; starting mode
;   always (not recommended)
;xdebug.start_with_request=yes
;   only when specific get parameters / cookies are set
;   (?XDEBUG_TRIGGER=1, ?XDEBUG_PROFILE=1, ?XDEBUG_TRACE=1, ?XDEBUG_SESSION=1)
;   this is best in conjunction with Chrome extension "Xdebug helper"
xdebug.start_with_request=trigger
;   folder for analyzing profile dumps
xdebug.output_dir="/tmp/xdebug"
;   not needed, since it is already in /etc/php/8.4/fpm/conf.d/20-xdebug.ini
;zend_extension=xdebug.so

これらの調整を行った後、PHP-FPM を再起動して変更を適用します。:

sudo service php8.4-fpm restart

VSCodeを構成する

Visual Studio Code で Xdebug を使用するには、2 つの拡張機能と構成の調整が必要です。これを設置します:

最後に、分析するプロジェクトの.vscodeフォルダーにlaunch.json構成ファイルを作成します。:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "ignore": ["**/vendor/**/*.php"]
        }
    ]
}

Chrome拡張機能をインストールする

Xdebug ヘルパー拡張機能は、ブラウザーで柔軟にデバッグできることが実証されています。これにより、必要な場合にのみ Xdebug を有効または無効にすることができます。デバッグ モードを簡単に変更することもできます (たとえば、デバッグからプロファイリングに切り替えるなど)。:

WordPress を設定する

WordPress 環境で Xdebug を使用する場合、デバッグ セッションがアクティブなときに cron ジョブ内のデバッグを無効にすると便利な場合があります。これにより、リクエストのデバッグが容易になります。これを行うには、次の行を次の場所に追加します。 wp-config.php ある:

// disable wp cron on xdebug sessions
if (function_exists('xdebug_is_debugger_active') && xdebug_is_debugger_active()) {
    define('DISABLE_WP_CRON', true);
}

この構成により、複雑なデバッグ問題に正確に対処できる強力なセットアップが得られます。頑固なバグを見つける場合でも、パフォーマンスの問題を微調整する場合でも、Xdebug は作業を効率化するだけでなく、コードの制御と明確さを通じて開発に新たな品質をもたらします。

バック