2015-02-11 98 views
0

我有一個Laravel項目,它呈現數百個網站。內容由後端系統提供。爲了提高性能,我想用Anahkiasen \ Flatten模塊緩存完整的HTML。 要爲每個網站生成一個自己的緩存,我在Flatten配置中的saltshaker陣列中添加了三個值的組合。Laravel Flatten:通過Saltshaker中的值清空緩存

我的問題是,我如何清除三個值的緩存,所以緩存清除一個網站,而不是所有的數百。 我試圖清除與\Flatten::flushUrl()緩存,因爲所有網站都有自己的子域。但緩存未被清除。

回答

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