/** * Check the max-age directive * * @param array $cacheHeaders * @param string $cacheBodyFile * * @return boolean */ protected static function cacheIsFresh(array $cacheHeaders, $cacheBodyFile) { $cacheTime = filemtime($cacheBodyFile); $now = new \Datetime(); //Cache-Control if (isset($cacheHeaders['Cache-Control'][0])) { $cacheControl = static::parseCacheControl($cacheHeaders['Cache-Control'][0]); //Max age if (isset($cacheControl['max-age']) && $cacheTime + $cacheControl['max-age'] < $now->get('U')) { return false; } } //Expires if (isset($cacheHeaders['Expires'][0])) { $expires = new \Datetime($cacheHeaders['Expires'][0]); if ($expires < $now) { return false; } } return true; }