FuelPHPサイド
FuelBeans 14 : ハウ・ツー・デバッグ
そろそろ、自分でプログラミング始められる人も多いでしょう。デバッグのコツを紹介します。
あるとき、ビューで表示される予定の内容が、ぜんぜん表示されずに真っ白になってしまいました。
当然、ビュー関係かと見なおしてもわからない。デバッガーで追っても、ビューの出力まで通っている。
結局、ビューの表示を止めてみたら、エラーが出ていて、それが消されていました。そのエラーを修正したら、きちんと動作しました。
原因はちょっと事だったので、何が原因であったか忘れてしまいましたが、この前フォーラムで、同じようなことが報告されていました。
FuelPHPを作っている方の人が、そんなことはない、表示されるように作っていると答えているの読み、ああ、実は俺も経験したんだよな、と思いましたが、スルーしました。細かい現象を追っていなかったからです。このバグはしばらく治らないことでしょう。
と言ったところで、早速デバッグのコツです。デバッガー使わないレベルの話ですよ。
デバッグで役に立つのは、これです。引数で渡した、変数、配列、オブジェクト何でも整形して表示してくれます。
デバッグのお供です。ちなみに、私のコードテンプレートには短縮名dumpで入れてあります。
更に、echoとかprint_rはビューで消されてしまうこともありますが、Debug::dump()は消されません。
デバッグだけでなく、関数の戻り値がドキュメント読んだけれどよくわからないとか、そうした場合に、たいへん役に立ちます。
ルーチングやら、POST、GETで渡される値の確認ならば、これです。多くの情報が表示されます。
FuelPHPの動作の仕組みまで透けて見えます。
NetBeansに入っているプロファイラとは別に、独立したPHPプロファイラが付いています。config.phpのprofilingをtrueにすると表示されます。PHPのためのプロファイラですね。configフォルダーのdb.phpの中にある、profilingをtrueにすると、さらにDBアクセスの記録も残ります。どんなアクセスがあったのか残り便利なのですが、残念なことに、取りこぼしがあるようです。
最初のうちは、程々に役に立ちますが、あとから全然使わなくなる機能です。
fuel/app/logsの中に保存されます。
開発中はconfig.phpのlog_thresholdはFuel::L_ALLにしておきましょう。どんなエラーを起こしてきたのかなど、保存されます。たまに役に立ちます。
自分でログに残すことも出来ます。上手く使えば、こちらのほうが役に立ちます。Log::info(), Log::debug(), Log::error()の3種が用意されており、それぞれのレベルのログとして残ります。引数は共通で、最初はメッセージ、2つ目はオプションで、関数名です。
| FuelBeans 12 : ビューを柔軟に取り扱う< 前 | 次 >FuelBeans 16 : フォーム入力の基礎 |
|---|
| < 前 | 次 > |
|---|