/** * @param \Exception|\ParseError $e */ public function exceptionHandler($e) { if ($this->mode === 'development') { $trace = $e->getTrace(); } else { $trace = $e->getTraceAsString(); } $this->addHandler($e->getCode(), $e->getMessage(), $e->getFile(), $e->getLine(), $trace); }
/** * {@inheritdoc} */ public function check() { if (null !== $this->error) { throw new LintingException(sprintf('PHP Parse error: %s on line %d.', $this->error->getMessage(), $this->error->getLine()), $this->error->getCode(), $this->error); } }
/** * Get a ErrorException instance. * * @param \ParseError|\TypeError|\Throwable $exception * * @return \ErrorException */ private function getErrorException($exception) : ErrorException { if ($exception instanceof ParseError) { $message = 'Parse error: ' . $exception->getMessage(); $severity = E_PARSE; } elseif ($exception instanceof TypeError) { $message = 'Type error: ' . $exception->getMessage(); $severity = E_RECOVERABLE_ERROR; } else { $message = $exception->getMessage(); $severity = E_ERROR; } return new ErrorException($message, $exception->getCode(), $severity, $exception->getFile(), $exception->getLine()); }