我想知道如何处理和检查我正在创建的缓存变体。
我们说我有一个项目并添加......
<a href="#">Logout {{ app.user }}</a>
...到每页的头部。在这种情况下,app.user是 fos_user_bundle 的一部分。
对于每个用户,页面将具有不同的内容(用户名)。 因此,缓存变体的数量会立即乘以用户数。
之前:100页,100个缓存变体
之后:100页* 500用户= 50.000缓存变体
symfony2会为每个用户的每一端创建缓存变体吗? 这在哪里受到控制?
我知道我可以使用边缘包括(ESI)。 我是否必须在此处进行以防止生成变体?
我在哪里可以看到并查看我生成的缓存变种的数量?
感谢您的帮助。
答案 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 / *目录中自行查看。