private function registerErrorHandler()
{
set_error_handler(coroutine(function ($errno, $msg, $file, $line) {
if (!(error_reporting() & $errno)) {
return;
}
$msg = "{$msg} in {$file} on line {$line}";
switch ($errno) {
case E_ERROR:
case E_PARSE:
case E_USER_ERROR:
case E_CORE_ERROR:
case E_COMPILE_ERROR:
case E_RECOVERABLE_ERROR:
$this->logger->error($msg);
break;
case E_CORE_WARNING:
case E_COMPILE_WARNING:
case E_WARNING:
case E_USER_WARNING:
$this->logger->warning($msg);
break;
case E_NOTICE:
case E_USER_NOTICE:
case E_DEPRECATED:
case E_USER_DEPRECATED:
case E_STRICT:
$this->logger->notice($msg);
break;
default:
$this->logger->warning($msg);
break;
}
}));
}