如何在symfony2 / twig中处理和调试缓存变体

时间:2014-12-28 17:19:39

标签: symfony caching twig esi

我想知道如何处理和检查我正在创建的缓存变体。

我们说我有一个项目并添加......

<a href="#">Logout {{ app.user }}</a>

...到每页的头部。在这种情况下,app.user是 fos_user_bundle 的一部分。

对于每个用户,页面将具有不同的内容(用户名)。 因此,缓存变体的数量会立即乘以用户数。

  

之前:100页,100个缓存变体

     

之后:100页* 500用户= 50.000缓存变体

symfony2会为每个用户的每一端创建缓存变体吗? 这在哪里受到控制?

我知道我可以使用边缘包括(ESI)。 我是否必须在此处进行以防止生成变体?

我在哪里可以看到并查看我生成的缓存变种的数量?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

将Twig解析为可执行代码,该代码存储在app / cache / dev或app / cache / prod文件夹中。如果将一个变量注入twig文件,那么它将作为简单变量传递给PHP文件,因此您可以为应用程序提供数千个用户,并且不会影响变体的数量。

例如,如果你有像这样的线条的枝条:

<a href="#">Logout {{ app.user }}</a>

它解析为:

<a href="#">Logout <?php echo $app->getUser() ?> </a>

所以只有一个变种。

实际上缓存比这更复杂,但概念是相同的。

您可以在app / cache / *目录中自行查看。