Symfony2和条令APC缓存

Symfony2和条令APC缓存,symfony,doctrine,apc,Symfony,Doctrine,Apc,我已经阅读了symfony2与性能相关的文档,并了解了以下步骤 在我的Web服务器上安装APC'php APC'并重新启动我的Web服务器 修改我的条令配置 doctrine: dbal: driver: "%database_driver%" host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%databas

我已经阅读了symfony2与性能相关的文档,并了解了以下步骤

在我的Web服务器上安装APC'php APC'并重新启动我的Web服务器 修改我的条令配置

doctrine:

dbal:

    driver:   "%database_driver%"
    host:     "%database_host%"
    port:     "%database_port%"
    dbname:   "%database_name%"
    user:     "%database_user%"
    password: "%database_password%"
    charset:  UTF8

   orm:

    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: true
    metadata_cache_driver: apc
    result_cache_driver: apc
    query_cache_driver: apc
现在,如果我调用一个操作从数据库中检索所有用户,我会在底部的信息栏中看到,doctrine每次执行114个查询。为什么不缓存查询

我的行动是这样的:

$users = $this->getDoctrine()->getRepository('AppUserBundle:User')->findAll();
return $this->render('AppUserBundle:User:index.html.twig', array('users' => $users));

默认情况下,条令不会缓存查询结果。必须明确指出要使用UsersUltCache方法缓存查询。例如,如果要缓存获取所有用户,请在用户存储库类中编写自己的方法:

use Doctrine\ORM\EntityRepository;

class UserRepository extends EntityRepository
{

    public function fetchAll()
    {
        $query = $this->createQueryBuilder('u')->getQuery();

        return $query->useResultCache(true)->getResult();
    }
}
该方法可以采用其他参数:

public function useResultCache($bool, $lifetime = null, $resultCacheId = null)
$bool-如果要缓存查询结果,请将其设置为true $LIFET-缓存结果的TTL(秒) $resultCacheId-您可以传递自己的id,如果为空,则将处理该问题
默认情况下,条令不会缓存查询结果。必须明确指出要使用UsersUltCache方法缓存查询。例如,如果要缓存获取所有用户,请在用户存储库类中编写自己的方法:

use Doctrine\ORM\EntityRepository;

class UserRepository extends EntityRepository
{

    public function fetchAll()
    {
        $query = $this->createQueryBuilder('u')->getQuery();

        return $query->useResultCache(true)->getResult();
    }
}
该方法可以采用其他参数:

public function useResultCache($bool, $lifetime = null, $resultCacheId = null)
$bool-如果要缓存查询结果,请将其设置为true $LIFET-缓存结果的TTL(秒) $resultCacheId-您可以传递自己的id,如果为空,则将处理该问题
您使用的是哪一版本的条令?我现在不在办公室,但我的意思是条令2.2您使用的是哪一版本的条令?我现在不在办公室,但我的意思是条令2.2感谢现在的工作:我想我必须创建一个具有一些查找/获取功能的基本存储库,然后扩展我的基本存储库。现在非常感谢这项工作:我想我必须创建一个带有一些查找/获取功能的基本存储库,然后扩展我的基本存储库。所以我可以在每个存储库中使用它。