第07回: Xdebugの設定 — var_dumpを卒業してブレークポイントデバッグへ

章: 第4章: エディタとデバッグ環境

対象OS: Windows / Mac 共通(差異は各セクションに記載)

「var_dumpを消し忘れた」—— デバッグのやり方を変える

PHPを学び始めると、変数の中身を確認するために var_dump()echo を使うのが定番です。しかし、これには問題があります。コードを一時的に書き換え、確認したら消して、また書き換えて……この繰り返しは非効率ですし、消し忘れるリスクもあります。

Xdebugを使えば、コードを変更せずにブレークポイントで実行を止め、その時点の変数をすべて確認できます。 セットアップに少し手間がかかりますが、一度整えると開発速度が大きく上がります。

Xdebugとは

Xdebugはphp.ini拡張として動作するデバッグツールです。VS Codeの「PHP Debug」拡張と連携して、IDEからブレークポイントデバッグが可能になります。

機能 内容
ブレークポイント 指定した行で実行を一時停止する
ステップ実行 1行ずつ進めながら変数を確認する
スタックトレース どの関数を経由してここに来たか確認できる
var_dumpの強化 出力が色付きで読みやすくなる

Xdebugのインストール

### Windowsの場合(XAMPP)

1. XAMPPをインストールしている場合、Xdebugは最初から含まれています

2. C:\xampp\php\php.ini をメモ帳(または VS Code)で開く

3. [XDebug] セクションを探す(なければファイル末尾に追記)


[XDebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

4. XAMPP Control PanelでApacheを再起動する

### Macの場合(MAMP)

1. 使用しているPHPバージョンに対応したXdebugをインストールします

まず、PHPのバージョンを確認:


php -v

次に、Homebrewでxdebugをインストール(PHP 8.2の場合):


pecl install xdebug

2. php.ini に設定を追記します

MAMPのphp.iniのパス例(バージョンによって異なります):


/Applications/MAMP/bin/php/php8.2.0/conf/php.ini

追記する内容:


[XDebug]
zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003

3. MAMPのサーバーを再起動する

チェックポイント: phpinfo() の出力ページで「xdebug」のセクションが表示されれば、有効化されています。

VS Code側の設定

1. 拡張機能「PHP Debug」(ID: xdebug.php-debug)をインストール

2. VS Codeのサイドバーで「実行とデバッグ」(虫のアイコン)を開く

3. 「launch.json ファイルを作成します」をクリック → 「PHP」を選択

自動生成される launch.json(プロジェクトの .vscode/launch.json):


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

ブレークポイントデバッグの手順

1. VS Codeで確認したい行の行番号の左をクリックして、赤い丸(ブレークポイント)を設置する

2. 「実行とデバッグ」パネルで「Listen for Xdebug」を実行(F5

3. ブラウザでPHPページにアクセスする

4. ブレークポイントの行で実行が止まり、VS Codeで変数一覧が確認できる

ステップ実行のキーボードショートカット:

操作 キー
次の行へ進む(ステップオーバー) F10
関数の中に入る(ステップイン) F11
関数から出る(ステップアウト) Shift+F11
次のブレークポイントまで実行 F5

WindowsとMacの差異まとめ

項目 Windows(XAMPP) Mac(MAMP)
Xdebugの場所 XAMPPに同梱されている pecl install が必要
php.iniのパス C:\xampp\php\php.ini /Applications/MAMP/bin/php/php8.x.x/conf/php.ini
拡張子の指定 zend_extension=xdebug zend_extension=xdebug.so
再起動方法 XAMPP Control Panel MAMP GUIから再起動

まとめ & 次のステップ

  • Xdebugを使えばコードを変えずに変数をリアルタイム確認できる
  • php.ini に4行設定を追記して、Apacheを再起動するだけで有効化できる
  • VS Codeの「PHP Debug」拡張と組み合わせてブレークポイントデバッグが可能
  • WindowsはXAMPPに同梱済み、MacはMAMPでも pecl install で導入できる

次回はWindowsユーザー向けに「WSL2でPHP環境をつくる」を解説します。WindowsでMacに近いLinux開発体験を実現する方法です。

Related Articles