1.2.3で整えるPHP開発環境【STEP.3】 確認方法

No Photo

第3回ではプログラム動作の確認環境(デバッグ用)についてご紹介いたします。

phpinfo 関数

phpinfo はマシン環境やアクセスしてきたUAの情報などを出力する関数です。サーバのセットアップが成功したか調べるときに使います。また困ったときにとりあえずタイプしてしまう関数でもあります。XAMPPでこの関数を使ってみるには、C:\XAMPP\htdocs\test.phpに次のように書き込み、http://localhost/test.phpをブラウザで表示します。


    <?php
    phpinfo();
    ?>

var_dump 関数

処理途中の変数の値を調べるのにはどんな方法があるでしょうか?たとえば、echo, print 関数は文字列の内容を調べるデバッグにも使えますが、通常の出力でも使う関数です。Webフレームワークでは専用のデバッグ関数、メソッドが用意されてことも多く、そちらを使った方が楽だったりします。PHPで元々使える方法にはprint_r関数やvar_dump関数があり、こちらは配列やオブジェクトの中身を調べることもできます。


    <?php
    $target = array('test', 'key' => 'item');
    var_dump($target);
    ?>

出力は以下のようになります


    array(2) { [0]=>  string(4) "test" ["key"]=>  string(4) "item" }

XDebug

XDebugはPHPユーザーのためのデバッグ環境で、これを使うとvar_dump関数の出力が見やすくなったりエラー時に自動的にGET/POST時のデータを出力する機能があります。Linuxなどではpeclコマンドでインストールしますが、XAMPPには自動的にインストールされていて、設定ファイルを修正すれば利用できるようになります。XAMPP for Windows Version 1.6.8であれば、C:\xampp\apache\bin\php.iniの675行目あたりに書かれている


;extension=php_xdebug.dll

この部分の先頭のセミコロンを削除すればOKです。XAMPP コントロールパネルからApacheを停止→開始して、先ほどのtest.phpを表示してみると、以下のように見やすくなったと思います。

var_dump(...);

XDebugには他にもエラー時に自動的に$_GETや$_POSTの内容をブラウザ上にダンプする機能があります。有効にするには、C:\xampp\apache\bin\php.iniの1270行目あたりにある、[xdebug]の下に、以下のように追記します。


xdebug.dump.GET = *
xdebug.dump.POST = *

設定ファイルを書き換えましたので先ほどとおなじようにApacheを再起動していただいて、test.phpに一行追加します。


$list = allay('a','b');

arrayのつもりでallayと書いてしまいました。ここでブラウザからhttp://localhost/test.php?query=test&sort=hogeにアクセスすると、

$_GETのダンプ

このように表示されると思います。

その他のツール

FirePHP
PHPのデータをFirebugコンソールにダンプするツールです。ブラウザの表示に影響しないのが利点です。
dBug
ダンプしたデータをJavaScriptにより折りたためるデバッグツールです。1ファイルにまとめられていて、導入が簡単なツールです。

まとめ

本番環境には不要ですが、開発環境で作業を楽にしてくれるツールをご紹介しました。ツールによっては設定を追加することでより詳細な情報を出力してくれることもありますので、調べて見ることをおすすめします。

参考資料

開発環境勉強会資料 (シェル環境、Xdebug、WinSCP etc)
PHPに限らない開発ツールについてご紹介
変数や配列、オブジェクトなどの中を見やすく表示してくれる「dBug」
弊社kimotoがdBugについて使用例を交えてわかりやすくご紹介
  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ