router = new HttpFx; $this->router->use('/', $this->middleware(...)); } private function middleware($response, $request) { $response->setPoweredBy('EEPROM'); $origin = $request->getHeaderLine('Origin'); if(!empty($origin)) { $originHost = parse_url($origin, PHP_URL_HOST); if(empty($originHost)) return 403; if($originHost !== $request->getHeaderLine('Host')) { $allowedOrigins = $this->config->getArray('origins'); if(!empty($allowedOrigins)) { $originHost = strtolower($originHost); if(!in_array($originHost, $allowedOrigins)) return 403; } } $response->setHeader('Access-Control-Allow-Origin', $origin); $response->setHeader('Vary', 'Origin'); } } public function getRouter(): IRouter { return $this->router; } public function register(IRouteHandler $handler): void { $this->router->register($handler); } public function dispatch(?HttpRequest $request = null): void { $this->router->dispatch($request); } }