Symfony 2 SymfonyComponentHttpFoundation HeaderBag headers


Symfony 2 SymfonyComponentHttpFoundation HeaderBag headers

因此,在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来说有点陌生,我想以正确的方式做每件事。

您的解决方案会起作用,但这不是最佳实践。Symfony2的强大功能之一是其基于事件的内核,IMO的更好方法是在kernel.response Event上编写一个Listener来更改标头。此外,例如,通过这种方式,您可以检查您的路线。

可以为HttpCacheListener找到一个时髦的实现,也可以看看他的服务定义。