From 15da53ca9fb1e372f2b3e94005722c4c2678b5e8 Mon Sep 17 00:00:00 2001 From: David Buchmann Date: Fri, 10 Feb 2017 17:11:43 +0100 Subject: [PATCH] purge both http and https from http cache store --- .../Component/HttpKernel/HttpCache/Store.php | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/HttpCache/Store.php b/src/Symfony/Component/HttpKernel/HttpCache/Store.php index b57d4a774d..f5574614b8 100644 --- a/src/Symfony/Component/HttpKernel/HttpCache/Store.php +++ b/src/Symfony/Component/HttpKernel/HttpCache/Store.php @@ -314,6 +314,23 @@ class Store implements StoreInterface return unserialize($entries); } + /** + * Purges data for the given URL. + * + * This method purges both the HTTP and the HTTPS version of the cache entry. + * + * @param string $url A URL + * + * @return bool true if the URL exists with either HTTP or HTTPS scheme and has been purged, false otherwise + */ + public function purge($url) + { + $http = preg_replace('#^https#', 'http', $url); + $https = preg_replace('#^http#', 'https', $url); + + return $this->doPurge($http) || $this->doPurge($https); + } + /** * Purges data for the given URL. * @@ -321,10 +338,9 @@ class Store implements StoreInterface * * @return bool true if the URL exists and has been purged, false otherwise */ - public function purge($url) + private function doPurge($url) { $key = $this->getCacheKey(Request::create($url)); - if (isset($this->locks[$key])) { flock($this->locks[$key], LOCK_UN); fclose($this->locks[$key]);