1.2.3で整えるPHP開発環境【STEP.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を表示してみると、以下のように見やすくなったと思います。
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にアクセスすると、
このように表示されると思います。
その他のツール
- FirePHP
- PHPのデータをFirebugコンソールにダンプするツールです。ブラウザの表示に影響しないのが利点です。
- dBug
- ダンプしたデータをJavaScriptにより折りたためるデバッグツールです。1ファイルにまとめられていて、導入が簡単なツールです。
まとめ
本番環境には不要ですが、開発環境で作業を楽にしてくれるツールをご紹介しました。ツールによっては設定を追加することでより詳細な情報を出力してくれることもありますので、調べて見ることをおすすめします。
参考資料
- 開発環境勉強会資料 (シェル環境、Xdebug、WinSCP etc)
- PHPに限らない開発ツールについてご紹介
- 変数や配列、オブジェクトなどの中を見やすく表示してくれる「dBug」
- 弊社kimotoがdBugについて使用例を交えてわかりやすくご紹介