【问题标题】:How to cache data in symfony2如何在 symfony2 中缓存数据
【发布时间】:2012-06-12 07:58:17
【问题描述】:

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

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

【问题讨论】:

标签: caching symfony


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        【解决方案5】:

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

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

        Docs @ Symfony.com

        Code @ Github

        【讨论】:

          【解决方案6】:

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

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

          <?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”。

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

          【讨论】:

          • 会话不是缓存!不要滥用它。改用文件或内存缓存,例如文件系统、memcache、reds 等
          猜你喜欢
          • 2012-08-05
          • 2013-11-18
          • 2011-09-20
          • 1970-01-01
          • 1970-01-01
          • 2014-10-06
          • 2016-05-07
          • 2011-04-12
          • 2019-12-03
          相关资源
          最近更新 更多