Symfony - 控制器中的缓存(Memcache)

时间:2016-04-05 08:05:32

标签: symfony doctrine-orm

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

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

这些文件只提到了教条的缓存,但有时候没有教条就需要它。他们似乎没有提到这方面的任何内容,或者它是Symfony没有包装的观点之一?

1 个答案:

答案 0 :(得分:2)

安装并使用DoctrineCacheBundle

  1. 将此捆绑包作为作曲家依赖项添加到项目中:

    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');
    
  5. 了解详情:https://symfony.com/doc/current/bundles/DoctrineCacheBundle/usage.html 完整的提供商参考:http://symfony.com/doc/current/bundles/DoctrineCacheBundle/reference.html