3

是否有任何内置的可能性(或外部包)可以在 Symfony2 中缓存数据?

我不想缓存页面本身,而是应用程序内部的数据,例如使用文件系统上的简单键-> 值存储。

4

6 回答 6

2

没有内置解决方案,但我建议您尝试APCRedisMemcache(它们都是内存数据存储)。

于 2012-06-12T08:27:31.793 回答
1

您可以使用LiipDoctrineCacheBundle将 Doctrine common 中的缓存驱动程序集成到您的 Symfony 项目中。

于 2012-06-12T09:19:30.600 回答
1

我正在使用winzouCacheBundle。它在不同的后端(apc、file、memcache、array、xcache、zenddata)上为您提供了一个简化的缓存 api。

于 2012-06-12T13:04:37.440 回答
0

目前,在 Symfony2 中没有唯一的缓存解决方案。框架的某些部分使用Doctrine Common

如果 Symfony2 有关于“标准”缓存解决方案的讨论,但我们将不得不等待一段时间......

于 2012-06-12T08:15:41.917 回答
0

我认为DoctrineCacheBundle目前是要走的路。

DoctrineCacheBundle 允许您的 Symfony 应用程序通过 Doctrine Cache 库使用不同的缓存系统。

文档@ Symfony.com

代码@Github

于 2016-07-15T21:07:39.013 回答
-1

如果我理解得很好,您想存储数据(附加到会话)并在同一会话再次调用新控制器时重新加载它们,以避免多次执行相同的过程(例如从一个数据库)。

您可以在控制器中使用会话系统:

<?php
namespace YourStuff\YourBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class YourController extends Controller
{
    $session = $this->get("session");
    $variabile = 4;
    $session->set("variableName",$variable); // setter
    if ($session->has("variableName") // to check if the variable exists
    {
        $variableName = $session->get("variableName"); // getter
    }
}

这是一个例子;如果会话的生命周期尚未到期,则可以在下次调用同一会话时访问“变量名称”。

“会话”使用 PHP 的 __SESSION 变量,因此请务必正确设置 session.cookie_lifetime 和 session.gc_maxlifetime,以提供所需的生命周期。

于 2012-06-12T10:00:28.357 回答