Open Source Web Development Tutorials - Dev Shed
PHPのデバッグにX-debugを使おう
(2009/03/19公開)
X-debugライブラリの初歩
X-debugライブラリを使い始める前に、テスト用のWebサーバーにインストールする必要があります。このためには、公式Webサイト(http://x-debug.org)を開き、WindowsまたはLinux用のモジュールをダウンロードします。Windows用のモジュールは、.DLLファイルとして提供されています。
ここでは、Windows用のPHP 5.2.1~5.2.6で動作するライブラリを使います。正しいファイルをダウンロードしたら、好きなディレクトリに置き(ここでは、PHPフォルダの下にある「ext」に置きます)、php.iniファイルの「dynamic modules」セクションに次の行を追加します。
zend_extension_ts="c:/php/ext/php_xdebug-4.4.1-2.0.2.dll"
上の行には、PHPエンジンが見つけられるように、X-debug拡張機能の完全なパスを含める必要があることに注意してください。
X-debug PHP拡張機能がWebサーバーに正しくインストールされたら、正常に動作することをテストします。このために、次に示す「FileReader」という基本的なサンプルクラスを作成します。
class FileReader{
private $path;
public function __construct($path){
$this->path=$path;
}
public function read(){
if(!$content=file_get_contents($this->path)){
throw new Exception('Error reading target file.');
}
return $contents;
}
}
上に示したように、前の「FileReader」クラスは、選択されたファイルの内容をフェッチし、「read()」メソッドでブラウザに直接エコーできるので便利です。しかし、ここまででは特別な動作は行っていません。
そこで、次にこのクラスを使って、ファイルへの無効なパスを渡す簡単なスクリプトを作成します。このスクリプトは次のようなものです。
try{
$fileReader=new fileReader('invalid_path/data.txt');
echo 'Contents of target file are the following .'.$fileReader->read();
}
catch(Exception $e){
echo $e->getMessage();
exit();
}
正常に動作すれば(この場合、実際には間違った動作ですが)、このスクリプトを実行すると、X-debugライブラリが動作し、次のようなエラーメッセージが表示されます。
ここで見られるように、X-debug拡張機能は前のスクリプトによって発生したことに関する多くの情報を提供します。エラーの性質だけではなく、スクリプトの実行中に作成された呼び出しスタック、それぞれの呼び出しの処理に費やされた時間とメモリ、各スタックエントリに対応する関数と場所など、いくつもの役に立つデバッグパラメータが通知されます。
この時点で、X-debug拡張機能がWebサーバーで動作しており、PHPインタープリタのデフォルトでは使えない追加データを、PHPアプリケーションのためデバッグに使えます。
ここまではよいでしょう。ここまでの説明は、X-debug拡張機能でPHPアプリケーションの詳細なデバッグを行うための基本的な方法を示したものです。
しかし、これはX-debugを使う方法のごく初歩に過ぎません。X-debugライブラリには、ほかに多くの便利な機能が含まれています。以下では、これらの機能についてより詳しく説明します。
次のセクションでは、ライブラリの「xdebug_call_file()」関数を使って、PHPアプリケーションに含まれているファイルと、実行されるファイルの場所とを管理する方法を紹介します。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.









