/**
  * {@inheritdoc}
  */
 public function setDate(\DateTime $date)
 {
     $date->setTimezone(new \DateTimeZone('UTC'));
     $this->headers->add(HttpHeader::create('Date', $date->format('D, d M Y H:i:s') . ' GMT'));
 }
 /**
  * Parses the header names and values from globals.
  *
  * @return HttpHeaderBag
  *   The headers.
  */
 protected static function parseHeadersFromGlobals()
 {
     $bag = new HttpHeaderBag();
     $headers = array();
     if (function_exists('apache_request_headers')) {
         $headers = apache_request_headers();
     } else {
         foreach ($_SERVER as $key => $value) {
             if (strpos($key, 'HTTP_') === 0) {
                 // Generate the plausible header name based on the $name.
                 // Converts 'HTTP_X_FORWARDED_FOR' to 'X-Forwarded-For'
                 $name = substr($key, 5);
                 $parts = explode('_', $name);
                 $parts = array_map('strtolower', $parts);
                 $parts = array_map('ucfirst', $parts);
                 $name = implode('-', $parts);
                 $headers[$name] = $value;
             }
         }
     }
     // Iterate over the headers and bag them.
     foreach ($headers as $name => $value) {
         $bag->add(HttpHeader::create($name, $value));
     }
     return $bag;
 }