Merge pull request #8233 from dhensby/pulls/4.2/caching-fixes

This is a cherry-picked PR from 4.2 -> 4.2.0
This commit is contained in:
Daniel Hensby 2018-07-23 14:05:41 +01:00
commit d46410c49b
No known key found for this signature in database
GPG Key ID: D8DEBC4C8E7BC8B9

View File

@ -26,6 +26,8 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
const STATE_DISABLED = 'disabled';
const STATE_DEFAULT = 'default';
/**
* Generate response for the given request
*
@ -90,6 +92,9 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
self::STATE_ENABLED => [
'must-revalidate' => true,
],
self::STATE_DEFAULT => [
'no-cache' => true,
],
];
/**
@ -98,7 +103,7 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
* @config
* @var string
*/
protected static $defaultState = self::STATE_DISABLED;
private static $defaultState = self::STATE_DEFAULT;
/**
* Current state
@ -766,14 +771,9 @@ class HTTPCacheControlMiddleware implements HTTPMiddleware, Resettable
}
// Errors disable cache (unless some errors are cached intentionally by usercode)
if ($response->isError()) {
if ($response->isError() || $response->isRedirect()) {
// Even if publicCache(true) is specified, errors will be uncacheable
$this->disableCache(true);
}
// Don't cache redirects
if ($response->isRedirect()) {
$this->disableCache(true);
}
}
}