Tom*_*azi 7 php caching symfony doctrine-orm
我正在使用Doctrine开发Symfony2项目.我想通过向查询添加缓存来优化API性能.
我看了几个选项,例如:
不确定我应该去哪一个,但对我而言,似乎在Doctrine级别缓存数据是最合适的.
说我希望有人帮助我或指导我如何设置Doctrine缓存并解释它是如何工作的.
即我有这个问题:
class QueryFactory
protected $connect;
public function __construct(Connection $connection)
{
$this->connect = $connection;
}
private function myQuery()
{
return $this->connect->createQueryBuilder()
->select('user_id')
->from('users', 'u')
->where('u.user_id = 2');
}
}
Run Code Online (Sandbox Code Playgroud)
如何为此查询添加缓存?是否有任何Doctrine库我需要注入任何我需要的东西use?
Tom*_*ski 21
在doctrine缓存查询或结果时,您可以执行以下操作:
private function myQuery()
{
return $this->connect->createQueryBuilder()
->select('user_id')
->from('users', 'u')
->where('u.user_id = 2')
->getQuery()
->useQueryCache(true) // here
->useResultCache(true); // and here
}
Run Code Online (Sandbox Code Playgroud)
检查 doc以获取有关这些方法的更多信息.这将使your缓存驱动程序工作 - 与您使用的驱动程序无关.
要配置Symfony使用特定查询驱动程序,您需要调整设置config.yml- 选中此选项可查看完整的选项列表.缓存中重要的是(这是apc配置示例):
entity_managers:
some_em:
query_cache_driver: apc
metadata_cache_driver: apc
result_cache_driver: apc
Run Code Online (Sandbox Code Playgroud)