function HttpCache::lookup
Lookups a Response from the cache for the given Request.
When a matching cache entry is found and is fresh, it uses it as the response without forwarding any request to the backend. When a matching cache entry is found but is stale, it attempts to "validate" the entry with the backend using conditional GET. When no matching cache entry is found, it triggers "miss" processing.
Parameters
bool $catch Whether to process exceptions:
Throws
\Exception
2 calls to HttpCache::lookup()
- HttpCache::handle in vendor/
symfony/ http-kernel/ HttpCache/ HttpCache.php - Handles a Request to convert it to a Response.
- HttpCache::lock in vendor/
symfony/ http-kernel/ HttpCache/ HttpCache.php - Locks a Request during the call to the backend.
File
-
vendor/
symfony/ http-kernel/ HttpCache/ HttpCache.php, line 318
Class
- HttpCache
- Cache provides HTTP caching.
Namespace
Symfony\Component\HttpKernel\HttpCacheCode
protected function lookup(Request $request, bool $catch = false) : Response {
try {
$entry = $this->store
->lookup($request);
} catch (\Exception $e) {
$this->record($request, 'lookup-failed');
if ($this->options['debug']) {
throw $e;
}
return $this->pass($request, $catch);
}
if (null === $entry) {
$this->record($request, 'miss');
return $this->fetch($request, $catch);
}
if (!$this->isFreshEnough($request, $entry)) {
$this->record($request, 'stale');
return $this->validate($request, $entry, $catch);
}
if ($entry->headers
->hasCacheControlDirective('no-cache')) {
return $this->validate($request, $entry, $catch);
}
$this->record($request, 'fresh');
$entry->headers
->set('Age', $entry->getAge());
return $entry;
}