コード例 #1
0
 protected function _deliverMedia(CakeResponse $response, $mediaFile, $mediaInfo)
 {
     $response->sharable(true, 2592000);
     //$response->mustRevalidate(true);
     $response->expires('+30 days');
     $modTime = filemtime($mediaFile);
     $response->modified($modTime);
     $response->etag(md5($mediaFile . $modTime));
     //$response->header("Pragma", "cache");
     $response->type($mediaInfo['ext']);
     $response->file($mediaFile);
     $response->send();
 }
コード例 #2
0
 /**
  * Tests the cache method
  *
  */
 public function testCache()
 {
     $response = new CakeResponse();
     $since = time();
     $time = new DateTime('+1 day', new DateTimeZone('UTC'));
     $response->expires('+1 day');
     $expected = array('Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => $time->format('D, j M Y H:i:s') . ' GMT', 'Cache-Control' => 'public, max-age=' . ($time->format('U') - time()));
     $response->cache($since);
     $this->assertEquals($expected, $response->header());
     $response = new CakeResponse();
     $since = time();
     $time = '+5 day';
     $expected = array('Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => gmdate("D, j M Y H:i:s", strtotime($time)) . " GMT", 'Cache-Control' => 'public, max-age=' . (strtotime($time) - time()));
     $response->cache($since, $time);
     $this->assertEquals($expected, $response->header());
     $response = new CakeResponse();
     $since = time();
     $time = time();
     $expected = array('Date' => gmdate("D, j M Y G:i:s ", $since) . 'GMT', 'Last-Modified' => gmdate("D, j M Y H:i:s ", $since) . 'GMT', 'Expires' => gmdate("D, j M Y H:i:s", $time) . " GMT", 'Cache-Control' => 'public, max-age=0');
     $response->cache($since, $time);
     $this->assertEquals($expected, $response->header());
 }