is('favicon.ico')) { return \router()->dispatch(); } return \send(null); } catch (ExitException | Error | \Throwable $exception) { if ($exception instanceof ExitException) { return \send($exception->getMessage(), $exception->getCode()); } return $this->sendErrorMessage($request, $response, $exception); } } /** * @param $request * @param $response * @return array * @throws NotFindClassException * @throws ReflectionException */ public static function create($request, $response): array { return [HRequest::create($request), HResponse::create($response)]; } /** * @param $sRequest * @param $sResponse * @param $exception * @return bool|string * @throws ComponentException * @throws Exception */ protected function sendErrorMessage($sRequest, $sResponse, $exception): bool|string { $this->error($exception); $params = Snowflake::app()->getLogger()->exception($exception); if ($sResponse instanceof Response) { [$sRequest, $sResponse] = [HRequest::create($sRequest), HResponse::create($sResponse)]; } $sResponse->addHeader('Access-Control-Allow-Origin', '*'); $sResponse->addHeader('Access-Control-Allow-Headers', $sRequest->headers->get('access-control-request-headers')); $sResponse->addHeader('Access-Control-Request-Method', $sRequest->headers->get('access-control-request-method')); return $sResponse->send($params, 200); } }