ORM如何在CakePHP3中运行

时间:2015-10-07 10:26:50

标签: cakephp orm cakephp-3.0

我对如何使用CakePHP3中的ORM有效地创建代码感到困惑。

我在CakePHP2有2个月的经验,现在我希望继续使用CakePHP3,但我对CakePHP3的一些基础知识感到困惑:

  1. ORM如何在CakePHP3中运行?

  2. CakePHP3如何比CakePHP2更有效?

  3. 我已经从CakePHP官方网站上阅读了Cookbook 3.x,但我仍感到困惑。

    我是ORM概念的新手。我可以帮助找出ORM的基础知识,为什么我们在CakePHP3中使用它,以及如何使用ORM更有效并产生更少的代码?

    提前致谢。

1 个答案:

答案 0 :(得分:1)

这包括in some detail in the documentation(强调添加):

  

CakePHP 3.0具有一个新的ORM,它已被重写   磨砺了。虽然1.x和2.x中使用的ORM对我们很有帮助   很长一段时间它有一些我们想要解决的问题。

     
      
  • 弗兰肯斯坦 - 这是一张唱片还是一张桌子?目前它们都是。
  •   
  • 不一致的API - 例如Model :: read()。
  •   
  • 没有查询对象 -   查询总是被定义为数组,这有一些限制   限制。例如,它使得工会和子查询更多   更难。
  •   
  • 返回数组 - 这是关于CakePHP的常见抱怨,并且   可能在某些层面上减少了采用率。
  •   
  • 没有记录对象 - 这个   使格式化方法难以/不可能。
  •   
  • 可容纳 -   应该是ORM的一部分,而不是疯狂的hacky行为。
  •   
  • 递归 -   这应该更好地控制,因为它定义了哪些关联   包括在内,而不是递归水平。
  •   
  • DboSource - 它是一只野兽,而且   模型比数据源更依赖于它。这种分离可能是   更清洁,更简单。
  •   
  • 验证 - 应该是分开的,它是一个巨人   疯狂的功能吧。使它成为一个可重复使用的位将使   框架更具可扩展性。
  •   
     

CakePHP 3.0中的ORM解决了这些问题   更多问题。新的ORM目前专注于关系数据存储。在未来和通过插件,我们将添加非关系存储,如ElasticSearch和其他。

文档继续提供有关ORM体系结构的更多详细信息,值得花时间阅读和吸收。

如果您只花了一点时间使用CakePHP 3.0,那么好处可能并不明显,但是表与实体的分离使得类/方法的责任更加明显,并增加了不具备的灵活性可能与模型层之前的工作方式有关。

理解新ORM的好处的最好方法就是按照设计使用它。