Zend\Stdlib\ErrorHandlerは、PHPエラーを極めて簡単に扱えるクラスです。
通常PHPのエラー発生時は、画面に文字列としてエラーメッセージなどが表示されてしまいます。
わりかし扱いづらいので、ついつい@とかini_set('display_errors', 0);とかやってしまいがちです。
そこでErrorHandler。
PHPエラーを吸収し、例外として扱うことが可能になります。
まあset_error_handler()のラッパーです。
ErrorHandler::start()で開始、stop()で終了してエラーを捕捉できるという非常に楽な作りとなっています。
この際だからPHPエラーとはさよならしてしまいましょう。
通常PHPのエラー発生時は、画面に文字列としてエラーメッセージなどが表示されてしまいます。
わりかし扱いづらいので、ついつい@とかini_set('display_errors', 0);とかやってしまいがちです。
そこでErrorHandler。
PHPエラーを吸収し、例外として扱うことが可能になります。
まあset_error_handler()のラッパーです。
<?php header('Content-type: text/html; charset=UTF-8'); require_once('path/to/channel/vendor/autoload.php'); use Zend\Stdlib\ErrorHandler; // エラーハンドラ開始 ErrorHandler::start(E_ALL | E_STRICT); // エラーはハンドラに奪われる print($a); // Undefined variable:a ereg('pattern', 'string'); // Function ereg() is deprecated // パースエラーはさすがに無理 // hogehoge // Parse error: syntax error // 例外はキャッチしない // throw new Exception('なんか例外'); // エラーハンドラを終了して元に戻す $exception = ErrorHandler::stop(); // stop()の返り値はErrorExceptionクラス print($exception->getMessage()); // Function ereg() is deprecated print($exception->getPrevious()->getMessage()); // Undefined variable:a // 破棄して終了する場合はstop()のかわりにclean() ErrorHandler::clean();
ErrorHandler::start()で開始、stop()で終了してエラーを捕捉できるという非常に楽な作りとなっています。
この際だからPHPエラーとはさよならしてしまいましょう。
PR