PHP: 2006年7月アーカイブ

深くなる一方のスタックトレース

エラー時に PHP が教えてくれるエラー内容はひどく限定された物だ。「昨日撮った『今日の出来事』を明日観ようとしたが録画に失敗していた」といった事例であっても「今日の出来事は録画されていません」程度に省略してくれる。しかし動機はともかく、そうなった経緯ぐらい知りたい時もある。

本当に昨日撮ったか?

debug_backtrace 関数が教えてくれる。PHP 5 なら debug_print_backtrace も選択肢の一つに加わる。ビデオデッキの可能性を求めた吉田戦車に対してアフターサポートまでばっちりな Zend Engine。にくい。

できれば楽をしたい。だから Xdebug

エラーハンドラに上記関数を使ったロガーを登録すればいいのだけれど、そこは人間楽をしたい。そして奇遇な事に、Xdebug という車輪を発明していた人がいる。導入についてはこちらが丁寧に解説。エラーはどこから来たのか、そしてどこへ行こうとしているのか をまるで NHK スペシャルのように詳しく教えてくれる。

今ならプロファイラもついてくる

Xdebug の出すログはプロファイリングに利用できる。プロファイラは Win32 環境だと WinCacheGrind などがある。

profiler.jpg
memberDbAdapter->getCount を実行するのに、その呼び出し元メソッドの内 58.1% もの時間を消費。こういった具合に、どこがおかしいのか探る手立てになる。もちろん設計のおかしさを指摘するなんて、そんな野暮な事はしない。

このアーカイブについて

このページには、2006年7月以降に書かれたブログ記事のうちPHPカテゴリに属しているものが含まれています。

前のアーカイブはPHP: 2006年3月です。

次のアーカイブはPHP: 2007年5月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.12