exception && date
доброго времени суток.. вот тут http://community.livejournal.com/ru_php/1092135.html?thread=15068199#t15068199 люди советуют делать замечательную вещь, а именно:
function exceptions_error_handler($severity, $message, $filename, $lineno) {
throw new ErrorException($message, 0, $severity, $filename, $lineno);
}
set_error_handler('exceptions_error_handler');
Все бы хорошо, но у меня такая конструкция не заработала выкидывает:
Fatal error: Exception thrown without a stack frame in Unknown on line 0.
exception_handler у меня свой, в нем вызывается статический метод класса Debug, в этом методе есть такой вот код
$date = date('r');
если его закоментировать, то все работает как надо, если же раскоментировать, то выводится такая ошибка.
UPDATE: gmdate работает почему-то, странно потому, что в ext/date/php_date.c написано вот так вот:
/* {{{ proto string gmdate(string format [, long timestamp])
Format a GMT date/time */
PHP_FUNCTION(gmdate)
{
php_date(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
}
/* }}} */
Никто не сталкивался с такой проблеммой? Да, PHP 5.2.2-pl1-gentoo и такая ошикбка появляется только при использовании mod_php, в cli все работает замечательно.
если кому интерено под катом рабочий код для воспроизведения:
class Debug {
public static function writeLog($msg) {
$date = date('r');
echo 'Debug::writeLog';
}
}
class ErrorHandlers {
public static function exceptionHandler($e) {
Debug::writeLog($e->getMessage());
}
public static function errorHandler($errno, $errstr, $errfile, $errline) {
throw new Exception($errstr, $errno);
}
}
set_error_handler(array('ErrorHandlers', 'errorHandler'));
set_exception_handler(array('ErrorHandlers', 'exceptionHandler'));
Комментариев нет
Комментариев нет.
Извините, комментирование на данный момент закрыто.