private function nonMvcResponse($extra, $message = '') { $responseEvent = new SendResponseEvent(); if (!empty($message)) { $extra = array_merge($extra, array('message' => $message)); } $responseEvent->setParams($extra); $this->nonMvcResponseSender->send($responseEvent); }
public function attachFatalErrorHandler() { // catch also fatal errors which would not show the regular error template. register_shutdown_function(function () { $error = error_get_last(); // check we have valid error object if (null === $error || !isset($error['type'])) { return; } // allow only catchable errors if ($error['type'] !== E_ERROR && $error['type'] !== E_PARSE && $error['type'] !== E_RECOVERABLE_ERROR) { return; } $errorReference = $this->generator->generate(); $extra = array('type' => 'FATAL', 'reference' => $errorReference, 'file' => $error['file'], 'line' => $error['line']); // translate error type to log type. $logType = Logger::ERR; if (isset(Logger::$errorPriorityMap[$error['type']])) { $logType = Logger::$errorPriorityMap[$error['type']]; } // log error using logger $this->logger->log($logType, $error['message'], $extra); $responseEvent = new SendResponseEvent(); $responseEvent->setParams(array_merge($extra, array('message' => $error['message']))); $this->nonMvcResponseSender->send($responseEvent); }); }