如何在Symfony2中缓存数据

3

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

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


请参考 https://dev59.com/0Gox5IYBdhLWcg3w6odg。 - Czechnology
6个回答

2

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


1

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

0

0

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

关于Symfony2的“标准”缓存解决方案有讨论,但我们需要等待一段时间……


现在Doctrine的缓存系统已经非常出色了 https://github.com/doctrine/cache - gagarine

-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
    }
}

这是一个例子,"variableName" 变量可以在同一会话被调用时访问,如果会话的生命周期尚未过期。

"session" 使用 PHP 的 __SESSION 变量,所以请确保正确设置 session.cookie_lifetime 和 session.gc_maxlifetime,以便提供所需的生命周期。


1
会话不是缓存!请勿滥用。使用文件或内存缓存,例如文件系统、memcache、reds等。 - Eddie Jaoude

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接