Ejemplo n.º 1
0
 protected function createRequest($env)
 {
     $method = $env["REQUEST_METHOD"];
     $uri = Uri::createFromEnvironment($env);
     $headers = Headers::createFromEnvironment($env);
     $cookies = Cookies::parseHeader($headers->get("Cookie", []));
     $serverParams = $env->all();
     $body = new Body(fopen("php://input", "r"));
     return new Request($method, $uri, $headers, $cookies, $serverParams, $body);
 }
Ejemplo n.º 2
0
 protected function createRequest()
 {
     $env = (new Environment())->mock(["PATH_INFO" => "/index/hello/", "SCRIPT_NAME" => "/index.php"]);
     $method = $env["REQUEST_METHOD"];
     $uri = Uri::createFromEnvironment($env);
     $headers = Headers::createFromEnvironment($env);
     $cookies = Cookies::parseHeader($headers->get("Cookie", []));
     $serverParams = $env->all();
     $body = new Body(fopen("php://input", "r"));
     return new Request($method, $uri, $headers, $cookies, $serverParams, $body);
 }
Ejemplo n.º 3
0
 /**
  * @param array $serverParams
  * @return ServerRequest
  */
 public function makeServerRequest(array $serverParams)
 {
     // I have no idea why I need to type hint here, but phpstorm is complaining
     /** @var $serverRequest ServerRequest */
     $headers = Headers::createFromArray($serverParams);
     $cookies = Cookies::parseHeader($headers->get('Cookie', []));
     $serverRequest = new ServerRequest($serverParams, $cookies);
     $serverRequest = $serverRequest->withMethod($serverParams['REQUEST_METHOD']);
     $serverRequest = $serverRequest->withUri();
     foreach ($headers->all() as $header => $value) {
         $serverRequest = $serverRequest->withHeader($header, $value);
     }
     $serverRequest = $serverRequest->withUploadedFiles(UploadedFile::parseUploadedFiles($_FILES));
     return $serverRequest;
 }
Ejemplo n.º 4
0
 /**
  * Make request
  *
  * @param  array $globals The $_SERVER super-global
  * @return \Psr\Http\Message\ServerRequestInterface
  */
 public function makeRequest(array $globals) : ServerRequestInterface
 {
     $method = $globals['REQUEST_METHOD'];
     $uri = $this->makeUri($globals);
     $headers = $this->makeHeaders($globals);
     $cookies = Cookies::parseHeader($headers->get('Cookie', []));
     $body = $this->makeBody();
     $files = [];
     // TODO: Create factory method for uploaded files
     $request = new Request($method, $uri, $headers, $cookies, $globals, $body, $files);
     if ($method === 'POST' && in_array($request->getMediaType(), ['application/x-www-form-urlencoded', 'multipart/form-data'])) {
         // parsed body must be $_POST
         $request = $request->withParsedBody($_POST);
     }
     return $request;
 }
Ejemplo n.º 5
0
 public static function fromGlobals(array $server = null, array $query = null, array $body = null, array $cookies = null, array $files = null)
 {
     $environment = new Environment($server);
     $method = $environment['REQUEST_METHOD'];
     $uri = Uri::createFromEnvironment($environment);
     $headers = Headers::createFromEnvironment($environment);
     $cookies = Cookies::parseHeader($headers->get('Cookie', []));
     $serverParams = $environment->all();
     $body = new RequestBody();
     $uploadedFiles = UploadedFile::createFromEnvironment($environment);
     $request = new ServerRequest($method, $uri, $headers, $cookies, $serverParams, $body, $uploadedFiles);
     if ($method === 'POST' && in_array($request->getMediaType(), ['application/x-www-form-urlencoded', 'multipart/form-data'])) {
         // parsed body must be $_POST
         $request = $request->withParsedBody($_POST);
     }
     return $request;
 }
Ejemplo n.º 6
0
 /**
  * Creates a new request object from the data of a reactPHP request object
  *
  * @param \React\Http\Request $request ReactPHP native request object
  * @param string              $body    Content of received call
  *
  * @return \Slim\Http\Request
  */
 public static function createFromReactRequest(\React\Http\Request $request, $body = '')
 {
     $slimHeads = new Headers();
     $cookies = [];
     $host = ['', 80];
     foreach ($request->getHeaders() as $reactHeadKey => $reactHead) {
         $slimHeads->add($reactHeadKey, $reactHead);
         switch ($reactHeadKey) {
             case 'Host':
                 $host = static::getHost($reactHead);
                 break;
             case 'Cookie':
                 $cookies = Cookies::parseHeader($reactHead);
                 break;
         }
     }
     $slimUri = new Uri('http', $host[0], (int) $host[1], $request->getPath(), $request->getQuery());
     $serverParams = $_SERVER;
     $serverParams['SERVER_PROTOCOL'] = 'HTTP/' . $request->getHttpVersion();
     $slimBody = static::getBody($body);
     return new Request($request->getMethod(), $slimUri, $slimHeads, $cookies, $serverParams, $slimBody);
 }
Ejemplo n.º 7
0
 public static function createFromGlobals(array $globals)
 {
     $env = new Collection($globals);
     $method = $env->get('REQUEST_METHOD');
     $uri = Uri::createFromGlobals($globals);
     $headers = Headers::createFromGlobals($globals);
     $cookies = Cookies::parseHeader($headers->get('Cookie', []));
     $serverParams = $globals;
     $body = new RequestBody();
     $uploadedFiles = UploadedFile::createFromGlobals($globals);
     $request = new static($method, $uri, $headers, $cookies, $serverParams, $body, $uploadedFiles);
     if ($method === 'POST' && in_array($request->getMediaType(), ['application/x-www-form-urlencoded', 'multipart/form-data'])) {
         // parsed body must be $_POST
         $request = $request->withParsedBody($_POST);
     }
     return $request;
 }
Ejemplo n.º 8
0
    $modelName = $c->get('model_name');
    if ($modelName) {
        $modelFullName = 'App\\models\\' . $modelName;
        return new $modelFullName($c);
    }
    return false;
});
// pagination
$container['pagination'] = function ($c) {
    $settings = $c->get('settings')['pagination'];
    return new \App\lib\Pagination($settings['per_nums'], $settings['page_display_nums']);
};
// cookie
$container['cookie'] = function ($c) {
    $request = $c->get('request');
    $parseCookies = \Slim\Http\Cookies::parseHeader($request->getHeader('cookie'));
    $cookie = new \Slim\Http\Cookies($parseCookies);
    return $cookie;
};
// session
$container['session'] = function ($c) {
    session_start();
    return new \App\lib\Session();
};
// flash
$container['flash'] = function ($c) {
    return new \App\lib\Flash($c['session']);
};
// user
$container['user'] = function ($c) {
    $user = ['id' => 0, 'name' => 'guest'];