コード例 #1
0
ファイル: Headers.php プロジェクト: foobar1643/student-list
 /**
  * Creates new headers collection from server parameters.
  *
  * @todo Think about better way to retrieve HTTP request headers.
  *
  * @param array $server Array with server parameters.
  * This usually comes from $_SERVER superglobal.
  *
  * @return static
  */
 public static function fromServer(array $server)
 {
     $headers = new Headers([]);
     foreach ($server as $key => $value) {
         if (substr($key, 0, 4) === 'HTTP') {
             // Strip the HTTP_ from the beginning of the string.
             $normalizedKey = strtolower(substr_replace($key, '', 0, 5));
             // Replace every underscore with hyphen.
             $normalizedKey = str_replace('_', '-', $normalizedKey);
             // Normalize key case.
             $normalizedKey = ucwords(strtolower($normalizedKey), '-');
             // Add a header to the collection
             $headers->set($normalizedKey, $value);
         }
     }
     return $headers;
 }
コード例 #2
0
ファイル: Request.php プロジェクト: foobar1643/student-list
 /**
  * Creates new Request instance from server parameters.
  *
  * @param array $server Array with server parameters.
  * This usually comes from $_SERVER superglobal.
  *
  * @return Request Request created from server parameters.
  */
 public static function fromServer(array $server)
 {
     $headers = Headers::fromServer($server);
     $uri = Uri::fromServer($server);
     $body = new Stream(fopen('php://temp', 'w+'));
     $method = $server['REQUEST_METHOD'];
     $cookies = [];
     $request = new Request($headers, $body, $method, $uri, $server, $cookies);
     if ($method === 'POST') {
         // Think about better way of doing this
         $request = $request->withParsedBody($_POST);
     }
     return $request;
 }