2

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

假设我有一个项目并添加...

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

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

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

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

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

symfony2 会为每个终端的每个用户创建缓存变体吗?这是哪里控制的?

我知道我可以使用边缘包含(ESI)。为了防止产生变体,我必须在这里做吗?

我在哪里可以查看和检查我正在生成的缓存变体的数量?

谢谢你的帮助。

4

1 回答 1

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/* 目录中自行检查。

于 2014-12-28T23:45:46.687 回答