是否有内置的可能性(或外部捆绑)来缓存Symfony2中的数据?
我不想使用简单的密钥缓存页面本身,而是缓存应用程序内的数据 - >例如,值存储在文件系统上。
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以使用LiipDoctrineCacheBundle将来自Doctrine common的缓存驱动程序集成到Symfony项目中。
答案 2 :(得分:1)
我正在使用winzouCacheBundle。它为您提供了不同后端(apc,file,memcache,array,xcache,zenddata)的简化缓存api。
答案 3 :(得分:0)
目前,Symfony2中没有唯一的缓存解决方案。框架的某些部分使用Doctrine Common。
如果Symfony2有关于“标准”缓存解决方案的讨论,但我们将不得不等待一段时间......
答案 4 :(得分:0)
我认为 DoctrineCacheBundle 目前是最佳选择。
DoctrineCacheBundle允许Symfony应用程序通过Doctrine Cache库使用不同的缓存系统。
答案 5 :(得分:-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,以便提供所需的生命周期。