У меня есть проект Laravel, который предоставляет сотни веб-сайтов. Контент предоставляется серверной системой. Чтобы повысить производительность, я хочу кэшировать полный HTML-код с помощью модуля Anahkiasen \ Flatten.
Чтобы сгенерировать для каждого сайта свой кеш, я добавил комбинацию из трех значений в saltshaker
Массив в конфиге Flatten.
Моя проблема в том, как я могу очистить кеш по трем значениям, чтобы кеш очищался для одного сайта вместо всех сотен.
Я пытался очистить кеш с \Flatten::flushUrl()
потому что все сайты имеют свой собственный поддомен. Но кеш не был очищен.
Я обнаружил, что хеш генерируется из значений в saltshaker
Массив с дополнительной информацией типа HTTP-запроса и маршрута.
Так что этот скрипт работал для меня, потому что у меня есть только один кэшированный маршрут:
$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);
Других решений пока нет …