Esempio n. 1
0
 /**
  * @param SymfonyRequest $request
  * @return Response
  */
 protected function doRequest($request)
 {
     $_COOKIE = $request->getCookies();
     $_SERVER = $request->getServer();
     $_FILES = $request->getFiles();
     $uri = str_replace('http://localhost', '', $request->getUri());
     $_SERVER['KOHANA_ENV'] = 'testing';
     $_SERVER['REQUEST_METHOD'] = strtoupper($request->getMethod());
     $_SERVER['REQUEST_URI'] = strtoupper($uri);
     \Request::$initial = null;
     $kohanaRequest = \Request::factory($uri);
     $kohanaRequest->method($_SERVER['REQUEST_METHOD']);
     if (strtoupper($request->getMethod()) == 'GET') {
         $kohanaRequest->query($request->getParameters());
     } else {
         if (strpos($request->getUri(), '?') !== false) {
             $parse = parse_url($request->getUri());
             if ($parse['query']) {
                 parse_str($parse['query'], $queryParams);
                 if ($queryParams) {
                     $kohanaRequest->query($queryParams);
                 }
             }
         }
     }
     if (strtoupper($request->getMethod()) == 'POST' || strtoupper($request->getMethod()) == 'PUT') {
         if ($request->getContent()) {
             $kohanaRequest->headers('Content-Type', 'application/json');
             $kohanaRequest->body($request->getContent());
         }
         $kohanaRequest->post($request->getParameters());
     }
     if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
         $kohanaRequest->headers('Authorization', 'Basic ' . base64_encode($_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW']));
     }
     $kohanaRequest->cookie($_COOKIE);
     $kohanaRequest::$initial = $kohanaRequest;
     $kohanaResponse = $kohanaRequest->execute();
     $content = $kohanaResponse->body();
     $headers = (array) $kohanaResponse->headers();
     $status = $kohanaResponse->status();
     $response = new Response($content, $status, $headers);
     return $response;
 }