好的我已经使用Symfony开发了一个简单的API来学习框架。既然API已经完成并且有效,我想添加一些缓存来增强性能并了解它是如何在Symfony框架环境中完成的。
我发现了这个:Cache Symfony
所以我在我的IndexController上添加了Cache注释,如下所示:
var copy = function(propertiesUsedOnFirst) {
return Ti.UI.createView(propertiesUsedOnFirst);
};
我不明白的是我怎么能检查这是否真的有效我查看了只有dev子文件夹的缓存文件夹但是没有任何内容被调整到IndexController。也许有办法通过分析器检查它或者也许更好地为Symfony使用不同的缓存工具。
好的,现在我明白我使用的注释Cache是用于前端捕获:
/**
* @Cache(expires="+5 minutes", public=true)
*/
class IndexController
{
/**
* @var CreateBookFactory
*/
public $create;
/**
* @param CreateBookFactory $createBookFactory
*/
public function __construct(
CreateBookFactory $createBookFactory,
){
$this->create = $createBookFactory;
}
/**
* @param Request $request
* @return JsonResponse
*/
public function createAction(Request $request)
{
return new JsonResponse($this->create->build($request));
}
}
答案 0 :(得分:2)
@Cache
中的SensioFrameworkExtraBundle
注释实际上并不缓存内容。相反,它会根据您提供的注释将HTTP缓存过期标头添加到响应中。当客户端的Last-Modified
和/或ETag
标头与注释中提供的标头匹配时,它还可以避免调用您的控制器in some cases。
如果要实际实现数据的服务器端缓存,则必须自己实现,或者使用提供该功能的其他包。
答案 1 :(得分:1)
symfony缓存和应用缓存不一样。它更多的是关于浏览器的标题。如果要测试它,请检查将哪些标头发送到浏览器。查看注释,它可能会发送标题Expires
您需要了解前端和后端缓存之间的区别。
前端缓存主要适用于GET请求还有基于ESI的更高级缓存技术和Varnish它可以显着加快您的网站速度。
你问了工具。我推荐Friends Of Symfony Cache Bundle