XDebugを使ってPHPプロジェクトをデバッグする
XDebugはPHP開発において欠かせないデバッグツールであり、強力なブレークポイントデバッグ、パフォーマンス分析、コードカバレッジ検出機能を提供します。XDebugを使用することで、開発者はコードにブレークポイントを設定し、変数の値をチェックし、関数呼び出しスタックを追跡し、パフォーマンスのボトルネックを分析するなどして、PHP開発の効率とコードの品質を大幅に向上させることができます。
XDebugの概要
XDebugはデバッグと分析機能を提供するためのPHP拡張です。これにより、開発者はコードにブレークポイントを設定し、コードをステップ実行し、変数の値とプログラムの状態を確認し、コードをよりよく理解しデバッグすることができます。
XDebugを有効にしてデバッグ環境を設定する
ServBayには、各PHPバージョンにXDebugが標準で組み込まれています。
注意
Xdebugモジュールを有効にする方法
およびPHPStormの設定
に関する情報は、記事ServBayに組み込まれているXdebugモジュールを有効にする方法を参照してください。
具体的なデバッグ例
サンプルプロジェクトの構造
簡単なPHPプロジェクトがあり、そのディレクトリ構造は次のようになっています:
servbay_xdebug_app/
├── src/
│ └── Calculator.php
└── index.php
2
3
4
Calculator.php
ファイルの内容は次のとおりです:
<?php
namespace App;
class Calculator
{
public function add($a, $b)
{
return $a + $b;
}
public function subtract($a, $b)
{
return $a - $b;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
index.php
ファイルの内容は次のとおりです:
<?php
require 'vendor/autoload.php';
use App\Calculator;
$calculator = new Calculator();
$sum = $calculator->add(5, 3);
$difference = $calculator->subtract(5, 3);
echo "Sum: " . $sum . "\n";
echo "Difference: " . $difference . "\n";
2
3
4
5
6
7
8
9
10
11
ブレークポイントの設定
Calculator
クラスのadd
メソッドをデバッグしたいので、その実行方法を確認します。PHPStormでCalculator.php
ファイルを開き、return $a + $b;
行にブレークポイントを設定します。
デバッグセッションの開始
- PHPStormで、トップツールバーの
Start Listening for PHP Debug Connections
ボタン(小さな虫のアイコン)をクリックします。 - ブラウザでPHPアプリケーション、例えば
https://servbay-xdebug-app.test/index.php
にアクセスします。
デバッグプロセス
- ブラウザが
index.php
にアクセスすると、XDebugは自動的にPHPStormに接続し、設定されたブレークポイントで実行を一時停止します。 - PHPStormで、コードが
Calculator.php
ファイルのadd
メソッドのreturn $a + $b;
行で停止しているのが分かります。
変数値の確認
- PHPStormのデバッグウィンドウで、現在実行中のコード行、呼び出しスタック、変数値などの情報が表示されます。
Variables
パネルで、変数$a
と$b
の値がそれぞれ5
と3
であることが確認できます。
ステップ実行
Step Over
ボタン(またはF8
キー)をクリックし、コードをステップ実行します。- 変数値の変化を観察し、
add
メソッドが正しい結果を返すことを確認します。
実行の再開
Resume Program
ボタン(またはF9
キー)をクリックし、コードの実行を再開します。- プログラムは次のブレークポイントに到達するか、または実行完了するまで続行します。
出力の確認
- ブラウザで出力結果を確認します。次のように表示されるはずです:
Sum: 8 Difference: 2
1
2
結論
XDebugを使用すると、開発者はPHPコードに簡単にブレークポイントを設定し、変数の値を確認し、コードをステップ実行することができます。これにより、コードをよりよく理解しデバッグすることができ、開発効率とコードの品質を向上させることができます。上述の具体的なデバッグ例を通じて、XDebugがPHPプロジェクトのデバッグにおいていかに強力で便利であるかが分かります。