Example #1
0
 /**
  * Executes the stored middleware routine.
  *
  * @param RequestInterface $request
  * @param TaskInterface    $task
  * @param callable         $next
  *
  * @return ResponseInterface
  */
 public function execute(RequestInterface $request, TaskInterface $task, callable $next) : ResponseInterface
 {
     $collection = new Collection($_COOKIE);
     $accessor = new CookieAccessor($collection);
     $this->container->bind($accessor);
     /**
      * @var ResponseInterface $response
      */
     $response = $next($request, $task);
     /*
      * Update the response to include new cookies and
      * delete existing ones by overriding them.
      */
     foreach ($collection->all() as $name => $cookie) {
         /*
          * Check if the cookie has an 'expiration' key. Only new cookies
          * has this attribute and therefore only those should be added to the
          * response headers.
          */
         if (!array_key_exists('expiration', $cookie)) {
             continue;
         }
         $response->headers()->write('Set-Cookie', $this->build($name, $cookie), false);
     }
     return $response;
 }
Example #2
0
 /**
  * Updates the content length response header.
  */
 private function updateContentLength()
 {
     $this->headers->write('Content-length', strlen($this->content), true);
 }