PHPではエラーが発生した場合わりとわかりやすく教えてくれますが、テキスト表示なので素っ気ないです。
ビジュアル的に表示してくれるツールとしてXDebugというものがあります。
エラーが発生した周辺のトレースなんかも行ってくれ、デバッグがちょっとだけやりやすくなります。
導入はxgebug.orgからダウンロードしてきてインストールするのが正道ですが、例によってXAMPPには最初から入っていたりします。
php.iniにも予めXdebugの定義が書かれており、コメントを外すだけで使用できます。
デフォルトで使用されている[Zend]セクションを全てコメントアウトし、[XDebug]セクションのコメントを外します。
丁寧にも「Only Zend OR (!) XDebug」なんて注意書きまでしてくれているのでおとなしく従いましょう。
php.ini
[XDebug] ;; Only Zend OR (!) XDebug zend_extension_ts="C:\xampp\php\ext\php_xdebug.dll" xdebug.remote_enable=true xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.remote_handler=dbgp xdebug.profiler_enable=1 xdebug.profiler_output_dir="C:\xampp\tmp" |
適当にエラーが出るコードを書いて実行すると、↓のようにテーブル表記でエラー部分をわかりやすく表示してくれます。
[Zend] Warning: Wrong parameter count for substr() in C:\xampp\htdocs\index.php on line 3
[XDebug]
( ! ) Warning: Wrong parameter count for substr() in C:\xampp\htdocs\index.php on line 3
Call Stack
#
Time
Memory
Function
Location
1
0.0008
57224
{main}( )
..\index.php:0
2
0.0008
57336
substr ( )
..\index.php:3
あと、副作用でvar_dump()の表示も色つきに変化します。
まあ、慣れれば通常の表示でも十分ではあるのですが、やっぱ見た目が明るいとなんとなく違うというか。
ただ問題点として、変数の中身が長すぎると途中で端折られてしまいます。
出力の時点で消えているため、どうやっても確認することができないので物凄い迷惑。
端折られるサイズの制限は、php.iniに
xdebug.var_display_max_data //表示する最大データサイズ、デフォルト512
xdebug.var_display_max_depth //配列やオブジェクトを表示する深さ、デフォルト3
を追加すると変更することができます。
var_display_max_data=65535、var_display_max_depth=20くらいに変えてしまいましょう。