忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/10/17 14:49 |
PHP1-88:XDebug

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くらいに変えてしまいましょう。

PR


2009/09/04 11:23 | Comments(0) | TrackBack(1) | PHP

トラックバック

トラックバックURL:
> Zend_Debug::dump() メソッドが、PHP の関数 ≫ var_dump() をラップしたものであることを理解すると有益でしょう。 ということでvar_dumpが少々見やすくなります。 中身はvar_dumpを出力制御で奪い取って正規表現で装飾してるだけという単純な内容でした。 クラス名を見て期待していたリフレクションなんかは全く行ってくれないようです。 オブジェクトなら勝手にリフレクションしてくれるようなvar_dump()を期待してたのに。残念。 ...
弱小PHPerの憂鬱 | 2010/05/17 22:44

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<一年半前の記事にツッコミ | HOME | 任天堂はゲーム業界各社にとってのロールモデルになり得ない>>
忍者ブログ[PR]