/** * Get a cache control directive from a message. * * @param MessageInterface $message Message to retrieve * @param string $part Cache directive to retrieve * * @return mixed|bool|null */ public static function getDirective(MessageInterface $message, $part) { $parts = AbstractMessage::parseHeader($message, 'Cache-Control'); foreach ($parts as $line) { if (isset($line[$part])) { return $line[$part]; } elseif (in_array($part, $line)) { return true; } } return null; }
/** * Gets the number of seconds from the current time in which a response * is still considered fresh. * * @param ResponseInterface $response * * @return int|null Returns the number of seconds */ public static function getMaxAge(ResponseInterface $response) { $parts = AbstractMessage::parseHeader($response, 'Cache-Control'); if (isset($parts['s-maxage'])) { return $parts['s-maxage']; } elseif (isset($parts['max-age'])) { return $parts['max-age']; } elseif ($response->hasHeader('Expires')) { return strtotime($response->getHeader('Expires')) - time(); } return null; }