我有一个Laravel项目,它可以呈现数百个网站。内容由后端系统提供。为了提高性能,我想用Anahkiasen \ Flatten模块缓存完整的HTML。
为每个网站生成一个自己的缓存,我在Flatten配置的saltshaker
数组中添加了三个值的组合。
我的问题是,我如何通过三个值清除缓存,因此缓存被清除为单个网站而不是全部数百个。
我尝试使用\Flatten::flushUrl()
清除缓存,因为所有网站都有自己的子域。但缓存未被清除。
答案 0 :(得分:0)
我发现哈希是根据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);