getDate() public method

Returns the Date header as a DateTime instance.
public getDate ( ) : DateTime
return DateTime A \DateTime instance
Example #1
0
 /**
  * {@inheritdoc}
  */
 public function getDate()
 {
     $date = $this->headers->getDate('Date', null);
     if ($date === null) {
         $this->setDate(new \DateTime('now'));
     }
     return parent::getDate();
 }
Example #2
0
 public function testGetDate()
 {
     $response = new Response('', 200, array('Date' => $this->createDateTimeOneHourAgo()->format(DATE_RFC2822)));
     $this->assertEquals(0, $this->createDateTimeOneHourAgo()->diff($response->getDate())->format('%s'), '->getDate() returns the Date header if present');
     $response = new Response();
     $date = $response->getDate();
     $this->assertLessThan(1, $date->diff(new \DateTime(), true)->format('%s'), '->getDate() returns the current Date if no Date header present');
     $response = new Response('', 200, array('Date' => $this->createDateTimeOneHourAgo()->format(DATE_RFC2822)));
     $now = $this->createDateTimeNow();
     $response->headers->set('Date', $now->format(DATE_RFC2822));
     $this->assertEquals(0, $now->diff($response->getDate())->format('%s'), '->getDate() returns the date when the header has been modified');
 }
 protected function logResponse(Response $response, Request $request)
 {
     if ($response->getStatusCode() >= 500) {
         $color = LogLevel::ERROR;
     } elseif ($response->getStatusCode() >= 400) {
         $color = LogLevel::WARNING;
     } elseif ($response->getStatusCode() >= 300) {
         $color = LogLevel::NOTICE;
     } elseif ($response->getStatusCode() >= 200) {
         $color = LogLevel::INFO;
     } else {
         $color = LogLevel::INFO;
     }
     $msg = 'Response {response_status_code} for "{request_method} {request_uri}"';
     $context = array('request_method' => $request->getMethod(), 'request_uri' => $request->getRequestUri(), 'response_status_code' => $response->getStatusCode(), 'response_charset' => $response->getCharset(), 'response_date' => $response->getDate(), 'response_etag' => $response->getEtag(), 'response_expires' => $response->getExpires(), 'response_last_modified' => $response->getLastModified(), 'response_max_age' => $response->getMaxAge(), 'response_protocol_version' => $response->getProtocolVersion(), 'response_ttl' => $response->getTtl(), 'response_vary' => $response->getVary());
     $this->logger->log($color, $msg, $context);
 }
 public function testGetTtl()
 {
     $response = new Response();
     $this->assertNull($response->getTtl(), '->getTtl() returns null when no Expires or Cache-Control headers are present');
     $response = new Response();
     $response->headers->set('Expires', $this->createDateTimeOneHourLater()->format(DATE_RFC2822));
     $this->assertLessThan(1, 3600 - $response->getTtl(), '->getTtl() uses the Expires header when no max-age is present');
     $response = new Response();
     $response->headers->set('Expires', $this->createDateTimeOneHourAgo()->format(DATE_RFC2822));
     $this->assertLessThan(0, $response->getTtl(), '->getTtl() returns negative values when Expires is in past');
     $response = new Response();
     $response->headers->set('Expires', $response->getDate()->format(DATE_RFC2822));
     $response->headers->set('Age', 0);
     $this->assertSame(0, $response->getTtl(), '->getTtl() correctly handles zero');
     $response = new Response();
     $response->headers->set('Cache-Control', 'max-age=60');
     $this->assertLessThan(1, 60 - $response->getTtl(), '->getTtl() uses Cache-Control max-age when present');
 }
 protected function assertResponseEquals(Response $expected, Response $actual)
 {
     $expected->setDate($actual->getDate());
     $this->assertEquals($expected, $actual);
 }
 /**
  * Set max-age, s-maxage and expires headers.
  *
  * Set $lifetime as < 0 for not set max-age
  * Need set Cache-Control public/private before set lifetime
  *
  * @param Response $response
  * @param int $lifetime
  *
  * @return ResponseConfigurator
  */
 protected function setLifetime(Response $response, $lifetime)
 {
     if ($lifetime >= 0) {
         $date = clone $response->getDate();
         $response->setMaxAge($lifetime)->setExpires($date->modify(sprintf('now +%s seconds', $lifetime)));
         if (!$response->headers->hasCacheControlDirective('private')) {
             $response->setSharedMaxAge($lifetime);
         }
     }
     return $this;
 }
 /**
  * @param Response $response
  * @param Request  $request
  *
  * @return array
  */
 protected function createContext(Response $response, Request $request)
 {
     $context = array('response_status_code' => $response->getStatusCode(), 'response_charset' => $response->getCharset(), 'response_date' => $response->getDate(), 'response_etag' => $response->getEtag(), 'response_expires' => $response->getExpires(), 'response_last_modified' => $response->getLastModified(), 'response_max_age' => $response->getMaxAge(), 'response_protocol_version' => $response->getProtocolVersion(), 'response_ttl' => $response->getTtl(), 'response_vary' => $response->getVary(), 'request_method' => $request->getMethod(), 'request_uri' => $request->getRequestUri(), 'request_route' => $request->attributes->get('_route'), 'response_time' => $this->getTime($request), 'response_memory' => $this->getMemory());
     return $context;
 }