我很想知道我是否可以使用codeigniter的活动记录查询,除了在某些情况下同时使用doctrine。因为在某些情况下,我发现活动记录更简单快捷地完成工作然后编写学说查询。例如,考虑以下情况,我需要在doctrine:
中返回表中的总行数$query = $this->em->createQueryBuilder()
->select("count(c)")
->from($this->entity, "c")
->getQuery();
return $query->getSingleScalarResult();
vs via active record:
return $this->db->count_all_results($this->table);
您可以看到它在活动记录中的容易程度。可能会有更多此类案件。那么,使用它们有什么优点或缺点吗?
此外,他们会使用两个不同的数据库连接来执行其操作吗?
答案 0 :(得分:1)
我很想知道如果我使用codeigniter的活动是否可以 记录查询除了在某些情况下同时使用doctrine
是的,没关系。没有反对它的规则。
此外,他们会使用两个不同的数据库连接来执行他们的 操作
取决于您如何使用它们。 PHP中的连接池不是其他语言中的连接池。您可能必须编写一个自定义类来将它们连接起来以使用公共连接,但如果我匆忙,它不会花费我的时间。
关于利弊
就codeigniter而言,坚持使用活动记录是件好事,因为它更干净,更高效,并且作为codeigniter的一部分,并为您提供您可能需要的几乎所有内容。您可以从基类上扩展的codeigniter论坛获取扩展的活动记录类,以提供一些复杂的连接功能。
但从技术上讲,这不是一个使用两层的问题,除了它变得混乱的事实,并且进行两个单独的连接。
答案 1 :(得分:1)
您可以同时使用Doctrine和ActiveRecord。箭鱼突出了一些问题。除此之外,如果您引入新的开发团队,学习曲线会更多。
我建议选择一个并坚持下去。 IMO,两者都同样出色。您应该根据您当前的项目和个人偏好进行选择。你可以在这里找到非常好的比较
What Does Doctrine Add Above Active Record - CodeIgniter?
关于您提到的两个查询,如果您使用DQL,它可能看起来很简单
$query = $em->createQuery('SELECT COUNT(u.id) FROM Entities\User u');
$count = $query->getSingleScalarResult();
答案 2 :(得分:0)
在CI中找到学说集成的链接 https://github.com/mitul69/codeigniter-doctrine-integration
我会在几天内更新更多文档。