章: 第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開発体験を実現する方法です。