Ejemplo n.º 1
0
 /**
  * Request constructor.
  *
  * Array of handlers for HTTP methods may look like this:
  * $methodHandlers = [
  *                     methodHandlerObject,
  *                     anotherMethodHandlerObject
  *                   ];
  *
  * @param StreamInterface $stream               Object which contains incoming stream.
  * @param UriInterface $uri                     Object which contains URI parts.
  * @param UploadedFileInterface $uploadedFile   UploadedFile instance.
  * @param array $methodHandlers                 Handlers for HTTP methods.
  */
 public function __construct(StreamInterface $stream, UriInterface $uri, UploadedFileInterface $uploadedFile, array $methodHandlers)
 {
     // Message construct.
     parent::__construct();
     // Store UploadedFile instance.
     $this->uploadedFile = $uploadedFile;
     // Store Stream instance.
     $this->stream = $stream->createStream('php://input', 'rb');
     // Server environment.
     $this->serverEnv = $this->normalizeServer($_SERVER);
     // Headers.
     $this->headers = $this->normalizeHeaders($this->serverEnv);
     // URI.
     $this->uri = $this->createUriFromGlobals($uri);
     // HTTP real method.
     $this->realMethod = strtoupper($this->getFromServer('REQUEST_METHOD'));
     // HTTP replaced method (by html form input field '_method').
     $this->replacedMethod = strtoupper(strtoupper($this->input('_method')));
     // Cookie if present.
     $this->cookies = isset($_COOKIE) ? $_COOKIE : [];
     // Get params if present.
     $this->queryParams = isset($_GET) ? $_GET : [];
     // processing incoming HTTP requests by methods:
     // POST, PUT, PATCH, DELETE
     if ($this->getMethod() !== 'GET') {
         // register HTTP methods handlers
         $this->registerMethodHandler($methodHandlers);
         // notification of all handlers of this incoming request
         $requestBody = $this->notify($this);
         // get parsed body (if exists) from handler
         $this->parsedBody = $requestBody['parsedBody'];
         // get uploaded files (if exists) from handler
         if (!empty($requestBody['uploadedFiles'])) {
             $this->uploadedFiles = $this->normalizeUploadedFiles($requestBody['uploadedFiles']);
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Request constructor.
  *
  * Example: $request = new Request(new Stream('php://input', 'rb'), new Uri());.
  *
  * @param StreamInterface $stream
  * @param UriInterface $uri
  */
 public function __construct(StreamInterface $stream, UriInterface $uri)
 {
     parent::__construct();
     // Server environment.
     $this->serverEnv = $this->normalizeServer($_SERVER);
     // Headers.
     $this->headers = $this->normalizeHeaders($this->serverEnv);
     // URI.
     $this->uri = $this->createUriFromGlobals($uri);
     // Row stream.
     $this->stream = $stream;
     // HTTP real method.
     $this->realMethod = $this->getFromServer('REQUEST_METHOD');
     // Parsed body.
     $this->parsedBody = $this->handleBody();
     // HTTP replaced method (by html form input field '_method').
     $this->replacedMethod = strtoupper($this->input('_method'));
     // Get params if present.
     $this->queryParams = isset($_GET) ? $_GET : [];
     // Cookie if present.
     $this->cookies = isset($_COOKIE) ? $_COOKIE : [];
     // Uploaded files if present.
     $this->uploadedFiles = isset($_FILES) ? $this->normalizeUploadedFiles($_FILES) : [];
 }