是否有任何内置的可能性(或外部包)可以在 Symfony2 中缓存数据?
我不想缓存页面本身,而是应用程序内部的数据,例如使用文件系统上的简单键-> 值存储。
您可以使用LiipDoctrineCacheBundle将 Doctrine common 中的缓存驱动程序集成到您的 Symfony 项目中。
我正在使用winzouCacheBundle。它在不同的后端(apc、file、memcache、array、xcache、zenddata)上为您提供了一个简化的缓存 api。
目前,在 Symfony2 中没有唯一的缓存解决方案。框架的某些部分使用Doctrine Common。
如果 Symfony2 有关于“标准”缓存解决方案的讨论,但我们将不得不等待一段时间......
我认为DoctrineCacheBundle目前是要走的路。
DoctrineCacheBundle 允许您的 Symfony 应用程序通过 Doctrine Cache 库使用不同的缓存系统。
如果我理解得很好,您想存储数据(附加到会话)并在同一会话再次调用新控制器时重新加载它们,以避免多次执行相同的过程(例如从一个数据库)。
您可以在控制器中使用会话系统:
<?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,以提供所需的生命周期。