0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPのデバッグ環境構築の備忘録(Xdebugの設定)②

Last updated at Posted at 2025-06-19

この記事は、前回のPHPのデバッグ環境構築の備忘録(Xdebugの設定)①の続きとして、Xdebugを使ったデバッグ手順を実際のサンプルコードをもとに整理したものです。
自分で見直す用としてまとめていますが、同じ環境で開発する方の参考にもなれば嬉しいです。

検証環境

  • PHP: 8.4.6
  • Xdebug: 3.4.2
  • Docker: 27.2.0
  • Docker Compose: 2.29.2
  • VS Code: 1.101.0
  • Dev Containers: 0.417.0

Xdebugを使ったデバッグの方法まとめ


1. 前提

  • 前回までで Xdebug のインストールと設定が完了しており、デバッグ環境が整っている状態。
  • VS Code を使用してリモート開発を行っている。
  • 今回の例では、sample.php というサンプルコードを用いてデバッグを行います。

2. サンプルコードの内容

sample.php のコードでは、以下の処理を行います:

  1. 配列 $numbers = [1, 2, 3] を用意。
  2. 配列内の値を2倍にした新しい配列 $doubleNumbers を作成。
  3. 最終的に $doubleNumbers の中身を print_r で出力。

サンプルコード

<?php
$numbers = [1, 2, 3];
$doubleNumbers = [];
foreach ($numbers as $number) {
    $doubleNumbers[] = $number * 2;
}
print_r($doubleNumbers);


3. デバッグの開始手順

  1. VS Codeでプロジェクトを開く
    • VS Code のリモート開発機能を使い、プロジェクトを開く(例: www/html ディレクトリ)。
    • 必要に応じてターミナルで現在のファイルを確認(例: ls コマンドで sample.php を確認)。
  2. デバッグ機能を起動
    • 左側の虫眼鏡マーク(デバッグアイコン)をクリック。
    • デバッグ構成(例: Lesson 4: Xdebug)を選択。
    • 実行ボタンを押してデバッグを開始。

4. デバッグの基本操作

(1) ブレイクポイントの設定

  • ブレイクポイントとは、コード実行を一時停止するポイントです。
  • sample.php の4行目(foreach 文の行)や10行目(print_r の行)にブレイクポイントを設定。

(2) プログラムの実行

  • デバッグモードでプログラムを実行。
  • 実行すると、設定したブレイクポイントでコードの実行が一時停止します。

(3) 変数の確認

  • 停止した状態で、現在の変数の状態を確認できます。
    • 左側の変数ウィンドウ:
      • 現在の変数やその値が一覧表示されます。
    • デバッグコンソール:
      • 変数名を入力して値を確認。
      • 例: echo $numbers; → 配列 [1, 2, 3] が表示される。

(4) ステップ実行

  • ステップ実行(コードを1行ずつ実行する機能)を使うことで、処理の流れを確認可能。
    • 「次のステップに進む」ボタンを押して、1行ずつコードを実行。
    • 各ステップで変数の中身を確認。

5. デバッグの流れの例

(1) 4行目のブレイクポイント

  • ブレイクポイントに到達した時点で、以下の変数の状態を確認:
    • $numbers[1, 2, 3]
    • $doubleNumbersnull(まだ初期化されていない)。

(2) ステップ実行

  • foreach のループを1回ずつ実行することで、$doubleNumbers に2倍の値が追加されていく様子を確認。
    • 1回目: $doubleNumbers[2]
    • 2回目: $doubleNumbers[2, 4]
    • 3回目: $doubleNumbers[2, 4, 6]

(3) 10行目のブレイクポイント

  • 配列 $doubleNumbers の最終的な値([2, 4, 6])を確認。

6. デバッグコンソールの使い方

デバッグコンソールでは、以下の操作が可能です:

  • 変数の値を確認
    • 入力: $numbers → 出力: [1, 2, 3]
    • 配列の特定の要素を確認: $numbers[0] → 出力: 1
  • 簡単なコードの実行
    • 例: $sum = array_sum($numbers);$sum が計算される。

7. デバッグを終了する方法

  • デバッグ終了後は、以下のいずれかの方法で処理を再開または停止します:
    • 続行ボタン(再開): 残りのコードを一気に実行し終了。
    • 停止ボタン: デバッグを完全に停止。

8. デバッグのメリット

  • エラーの正確な特定:
    • どの行でエラーが発生しているか、変数の値を確認することで特定可能。
  • コードの動作を詳細に把握:
    • ステップ実行を使って、コードが意図通りに動作しているか確認。
  • 効率的なデバッグ:
    • 従来の var_dump()print_r() を多用する手法に比べ、効率的かつ直感的に問題を解決可能。

9. 注意点

  • Xdebugの設定確認:

    • 正しく動作しない場合、php.ini で Xdebug の設定が有効になっているか確認。

    • 必要な設定例:

      zend_extension=xdebug
      xdebug.mode=debug
      xdebug.start_with_request=yes
      xdebug.client_host=127.0.0.1
      xdebug.client_port=9003
      
      
  • VS Codeのデバッグ設定:

    • .vscode/launch.json に適切な設定が必要。

    • 例:

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

10. まとめ

  1. デバッグの流れ:
    • ブレイクポイントを設定 → プログラム実行 → ステップ実行で状態確認 → 問題箇所を特定。
  2. Xdebugの利点:
    • 手動でデバッグ用コードを記述する必要がなく、効率的にコードの動作確認が可能。
  3. VS Codeとの統合:
    • VS Code内でデバッグ操作、ターミナル操作、変数確認が一括で行える。

以上が、Docker × VS Code × Xdebug を使ったPHPデバッグ環境の構築手順です。
独学でつまずいたポイントや設定の流れを、自分でも見返せるようにまとめました。
環境構築やデバッグで悩んでいる方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?