【问题标题】:Symfony - Cache (Memcache) in a controllerSymfony - 控制器中的缓存(Memcache)
【发布时间】:2023-04-08 06:21:01
【问题描述】:

你如何在没有查询的情况下直接在控制器中使用缓存(orm 缓存驱动程序)?

http://symfony.com/doc/current/reference/configuration/doctrine.html#caching-drivers

文档仅提到缓存与原则,但有时需要它而不需要原则。他们似乎没有提及任何内容,或者这是 Symfony 没有包装器的视图之一?

【问题讨论】:

    标签: symfony doctrine-orm


    【解决方案1】:

    安装使用DoctrineCacheBundle:

    1. 将此捆绑包作为 Composer 依赖项添加到您的项目中:

      composer require doctrine/doctrine-cache-bundle
      
    2. 在您的应用程序内核中添加这个包:

      // app/AppKernel.php
      public function registerBundles()
      {
          // ...
          $bundles[] = new \Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle();
      
          return $bundles;
      }
      
    3. 配置它:

      # app/config/config.yml
      doctrine_cache:
          providers:
              my_apc_metadata_cache:
                  type: apc
                  namespace: metadata_cache_ns
              my_apc_query_cache:
                  namespace: query_cache_ns
                  apc: ~
              memcache:
                  servers:
                      memcache01: 11211
      
    4. 使用它:

      $apcCache = $this->container->get('doctrine_cache.providers.my_apc_cache');
      $memcacheCache = $this->container->get('doctrine_cache.providers.memcache');
      

    阅读更多:https://symfony.com/doc/current/bundles/DoctrineCacheBundle/usage.html 完整的供应商参考:http://symfony.com/doc/current/bundles/DoctrineCacheBundle/reference.html

    【讨论】:

    • 为了完整起见,您能否添加如何配置 memcache 以与它一起使用,因为 apc 没有任何配置选项。
    • 添加了内存缓存提供程序示例
    • 简单评论一下,从 3.1 开始,Symfony 包含了自己的 Cache 组件。所以不需要安装 DoctrineCacheBundle。
    • @JavierEguiluz - 你能与我们分享博客文章或拉取请求的链接吗?
    • @PawełMikołajczuk 目前还没有官方博客文章,但是你可以看到与这个新组件相关的所有 PR:github.com/symfony/symfony/… 集成尚未完全完成。他们仍在修复错误并改进与 Symfony 的集成。
    猜你喜欢
    • 1970-01-01
    • 2019-06-10
    • 2013-10-07
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 2015-11-12
    • 2018-05-01
    • 2011-07-17
    相关资源
    最近更新 更多