public function doRequest($request) { if ($this->mockedResponse) { $response = $this->mockedResponse; $this->mockedResponse = null; return $response; } $_COOKIE = $request->getCookies(); $_SERVER = $request->getServer(); $_FILES = $this->remapFiles($request->getFiles()); $uri = str_replace('http://localhost', '', $request->getUri()); $_REQUEST = $this->remapRequestParameters($request->getParameters()); if (strtoupper($request->getMethod()) == 'GET') { $_GET = $_REQUEST; } else { $_POST = $_REQUEST; } $_SERVER['REQUEST_METHOD'] = strtoupper($request->getMethod()); $_SERVER['REQUEST_URI'] = $uri; $_SERVER['SCRIPT_URI'] = $uri; $_SERVER['SCRIPT_NAME'] = $uri; $context = new PhpContext(); $context->SimulateNonCli = true; unset($context->Request); $request = \Rhubarb\Crown\PhpContext::createRequest(); $response = Module::generateResponseForRequest($request); $headers = $response->getHeaders(); $content = $response->getContent(); $headers['Content-type'] = isset($headers['Content-type']) ? $headers['Content-type'] : "text/html; charset=UTF-8"; $code = 200; if ($response instanceof RedirectResponse) { $this->redirect = $response->getUrl(); $code = 302; } $response = new Response($content, $code, $headers); return $response; }
protected function getAbsoluteHandledUrl() { $request = PhpContext::createRequest(); return $request->server("REQUEST_SCHEME") . "://" . $request->server("SERVER_NAME") . $this->handledUrl; }