I have a Laravel Project, which renders hundreds of websites. The Content is provided by a back-end System. To increase the Performance i want to cache the complete HTML with the Anahkiasen\Flatten module. To generate for each Website an own cache, i added a combination of three values into the saltshaker
Array in the Flatten config.
My Problem is, how i can clear the cache by the three values, so the cache is cleared for a single website instead of all hundreds. I tried to clear the cache with \Flatten::flushUrl()
because all Websites has their own sub-Domain. But the cache wasn't cleared.
I discovered the hash is generated from the values in saltshaker
Array with the additional information of HTTP Request Type and the Route. So this script worked for me, because i only have a single cached route:
$pages = $cached = (array) $this->app['flatten.storage']->get('cached');
$hash = $this->app['flatten']->computeHash('/');
foreach ($pages as $key => $page) {
if ($hash === $page) {
$this->app['cache']->forget($page);
unset($cached[$key]);
}
}
$this->app['flatten.storage']->set('cached', $cached);