critical(FileLogger::MSG_FULL, [ 'message' => $e->getMessage(), 'line' => $e->getLine(), 'file' => $e->getFile(), ]); echo 'My Exception [' . $e->getCode() . '] ' . $e->getMessage() . '
' . ' Exception on line ' . $e->getLine() . ' in file ' . $e->getFile() . ', PHP ' . PHP_VERSION . ' (' . PHP_OS . ')
' . 'aborting...
'; } /** * Error handler. * * @param int $errno Error number * @param string $errstr Error message * @param string $errfile Error file * @param int $errline Error line * * @return bool * * @since 1.0.0 */ public static function errorHandler(int $errno, string $errstr, string $errfile, int $errline) : bool { if (!(error_reporting() & $errno)) { // This error code is not included in error_reporting return false; } $logger = FileLogger::getInstance(__DIR__ . '/../Logs'); $logger->error(FileLogger::MSG_FULL, [ 'message' => 'Unhandled error', 'line' => $errline, 'file' => $errfile, ]); switch ($errno) { case E_USER_ERROR: echo 'My ERROR [' . $errno . '] ' . $errstr . '
'; break; case E_USER_WARNING: echo 'My WARNING [' . $errno . '] ' . $errstr . '
'; break; case E_USER_NOTICE: echo 'My NOTICE [' . $errno . '] ' . $errstr . '
'; break; default: echo 'Unknown error type: [' . $errno . '] ' . $errstr . '
'; break; } echo 'My Error Fatal error on line ' . $errline . ' in file ' . $errfile . ', PHP ' . PHP_VERSION . ' (' . PHP_OS . '
' . 'aborting...
'; error_clear_last(); return true; } /** * Shutdown handler. * * @return void * * @since 1.0.0 */ public static function shutdownHandler() /* : void */ { $e = error_get_last(); if (isset($e)) { $logger = FileLogger::getInstance(__DIR__ . '/../Logs'); $logger->warning(FileLogger::MSG_FULL, [ 'message' => $e['message'], 'line' => $e['line'], 'file' => $e['file'], ]); echo 'My Error unhandled [' . $e['type'] . '] ' . $e['message'] . '
' . ' Fatal error on line ' . $e['line'] . ' in file ' . $e['file'] . ', PHP ' . PHP_VERSION . ' (' . PHP_OS . ')
' . 'aborting...
'; } } }