Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / zendframework / zend-diactoros / src / Response.php
index 24aeb4e6b7dd33b5b8f1cb001d65496bca5c883e..17cae64e556798d141d7007ae2cc87f151eac33f 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
  * @see       https://github.com/zendframework/zend-diactoros for the canonical source repository
- * @copyright Copyright (c) 2015-2017 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2015-2018 Zend Technologies USA Inc. (http://www.zend.com)
  * @license   https://github.com/zendframework/zend-diactoros/blob/master/LICENSE.md New BSD License
  */
 
@@ -11,6 +11,12 @@ use InvalidArgumentException;
 use Psr\Http\Message\ResponseInterface;
 use Psr\Http\Message\StreamInterface;
 
+use function gettype;
+use function is_float;
+use function is_numeric;
+use function is_scalar;
+use function sprintf;
+
 /**
  * HTTP response encapsulation.
  *
@@ -81,7 +87,7 @@ class Response implements ResponseInterface
         422 => 'Unprocessable Entity',
         423 => 'Locked',
         424 => 'Failed Dependency',
-        425 => 'Unordered Collection',
+        425 => 'Too Early',
         426 => 'Upgrade Required',
         428 => 'Precondition Required',
         429 => 'Too Many Requests',
@@ -107,7 +113,7 @@ class Response implements ResponseInterface
     /**
      * @var string
      */
-    private $reasonPhrase = '';
+    private $reasonPhrase;
 
     /**
      * @var int
@@ -140,12 +146,6 @@ class Response implements ResponseInterface
      */
     public function getReasonPhrase()
     {
-        if (! $this->reasonPhrase
-            && isset($this->phrases[$this->statusCode])
-        ) {
-            $this->reasonPhrase = $this->phrases[$this->statusCode];
-        }
-
         return $this->reasonPhrase;
     }
 
@@ -155,8 +155,7 @@ class Response implements ResponseInterface
     public function withStatus($code, $reasonPhrase = '')
     {
         $new = clone $this;
-        $new->setStatusCode($code);
-        $new->reasonPhrase = $reasonPhrase;
+        $new->setStatusCode($code, $reasonPhrase);
         return $new;
     }
 
@@ -164,9 +163,10 @@ class Response implements ResponseInterface
      * Set a valid status code.
      *
      * @param int $code
+     * @param string $reasonPhrase
      * @throws InvalidArgumentException on an invalid status code.
      */
-    private function setStatusCode($code)
+    private function setStatusCode($code, $reasonPhrase = '')
     {
         if (! is_numeric($code)
             || is_float($code)
@@ -175,11 +175,24 @@ class Response implements ResponseInterface
         ) {
             throw new InvalidArgumentException(sprintf(
                 'Invalid status code "%s"; must be an integer between %d and %d, inclusive',
-                (is_scalar($code) ? $code : gettype($code)),
+                is_scalar($code) ? $code : gettype($code),
                 static::MIN_STATUS_CODE_VALUE,
                 static::MAX_STATUS_CODE_VALUE
             ));
         }
-        $this->statusCode = $code;
+
+        if (! is_string($reasonPhrase)) {
+            throw new InvalidArgumentException(sprintf(
+                'Unsupported response reason phrase; must be a string, received %s',
+                is_object($reasonPhrase) ? get_class($reasonPhrase) : gettype($reasonPhrase)
+            ));
+        }
+
+        if ($reasonPhrase === '' && isset($this->phrases[$code])) {
+            $reasonPhrase = $this->phrases[$code];
+        }
+
+        $this->reasonPhrase = $reasonPhrase;
+        $this->statusCode = (int) $code;
     }
 }