清除缓存后,有没有办法在用户访问页面之前创建视图缓存文件?目前我们使用下面的命令创建一些缓存文件,但不创建视图缓存文件。
symfony cache:prime --env=qa frontend
答案 0 :(得分:0)
是的,有一种方法可以在用户访问页面之前生成缓存文件。您需要创建缓存预热脚本。每个URL的简单curl命令将创建缓存文件:
curl http://myapp.example.com/user/action/
另一种选择是创建一个PHP脚本,并使用通常用于测试的Symfony内置浏览器,您可以使用它来预热缓存,如下例所示:
require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'staging', false);
sfContext::createInstance($configuration);
// Array of URLs to browse
$pages = array(
'/foo/index',
'/foo/bar/id/1',
...
);
$b = new sfBrowser();
foreach ($pages as $page)
{
$b->get($page);
}
此处有更多信息http://symfony.com/legacy/doc/gentle-introduction/1_4/en/18-Performance位于生成缓存页面部分,有关缓存的更多信息,请访问http://symfony.com/legacy/doc/gentle-introduction/1_4/en/12-Caching