Laravel Flatten:按Saltshaker中的值清空缓存

时间:2015-02-11 09:28:37

标签: php caching laravel-4 flatten

我有一个Laravel项目,它可以呈现数百个网站。内容由后端系统提供。为了提高性能,我想用Anahkiasen \ Flatten模块缓存完整的HTML。 为每个网站生成一个自己的缓存,我在Flatten配置的saltshaker数组中添加了三个值的组合。

我的问题是,我如何通过三个值清除缓存,因此缓存被清除为单个网站而不是全部数百个。 我尝试使用\Flatten::flushUrl()清除缓存,因为所有网站都有自己的子域。但缓存未被清除。

1 个答案:

答案 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);