所以在Symfony2中我需要做以下事情:
$response->headers->addCacheControlDirective();
$response->headers->addCacheControlDirective();
$response->headers->addCacheControlDirective();
$response->headers->addCacheControlDirective();
以上方法在里面:
namespace Symfony\Component\HttpFoundation;
class HeaderBag
我通过更新我的app_dev.php和app.php并添加以下内容来实现它:
$kernel = new AppKernel('dev', true);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->headers->addCacheControlDirective('no-cache', true);
$response->headers->addCacheControlDirective('max-age', 0);
$response->headers->addCacheControlDirective('must-revalidate', true);
$response->headers->addCacheControlDirective('no-store', true);
这是修改标题的正确方法吗?我应该做些什么吗?
有点新的Symfony,我想以正确的方式做所有事情。
答案 0 :(得分:1)
您的解决方案可行,但这不是最佳做法。 Symfony2的一个强大功能是他的基于事件的kernel,IMO在kernel.response事件上编写监听器的更好方式是更改标头。此外,例如,通过这种方式,您可以检查您的路线。
可以找到HttpCache Listener的一个时髦实现,还可以查看他的服务definition。