getLogger(); $logger->error("Error [{$errNo}]: {$errMsg} in {$errFile} on line {$errLine}"); return false; } public function handleShutdown() { $error = error_get_last(); if ($error !== null && in_array($error['type'], [E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR])) { $logger = $this->getLogger(); $logger->error("Fatal Error [{$error['type']}]: {$error['message']} in {$error['file']} on line {$error['line']}"); } } /** * @return Config */ protected function getConfig() { return $this->getDI()->getShared('config'); } /** * @param Throwable $e */ abstract public function handleException($e); abstract protected function getLogger(); }