Пример #1
0
 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);
 }
Пример #2
0
 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);
     });
 }