Symfony2和条令APC缓存
我已经阅读了symfony2与性能相关的文档,并了解了以下步骤 在我的Web服务器上安装APC'php APC'并重新启动我的Web服务器 修改我的条令配置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
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感谢现在的工作:我想我必须创建一个具有一些查找/获取功能的基本存储库,然后扩展我的基本存储库。现在非常感谢这项工作:我想我必须创建一个带有一些查找/获取功能的基本存储库,然后扩展我的基本存储库。所以我可以在每个存储库中使用它。