エラーを例外に変換。
エラーを例外に変換するのは、一般的な手法らしい。
function handleError ($errno, $errstr, $errfile, $errline) { if ($errno & error_reporting()) { throw new RuntimeException($errstr, $errno); } } set_error_handler('handleError');
サンプルではerror_reportingに対応していない様なので、修正してみた。
Smartyテンプレート上では、E_NOTICEが頻繁に発生する。(アサインしていない変数をif式から参照したり)
Smarty自身は、error_reportingを適宜書き換えることによってこの問題に対応している(Smarty::fetch())が、その仕組みをそのまま生かす為には、エラーハンドラの側でもerror_reportingに対応する必要がある。
以上、備忘録。