ORM如何在CakePHP3中运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORM如何在CakePHP3中运行相关的知识,希望对你有一定的参考价值。

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

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

  1. ORM如何在CakePHP3中运行?
  2. CakePHP3如何比CakePHP2更有效?

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

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

提前致谢。

答案

这包括in some detail in the documentation(重点补充):

CakePHP 3.0具有一个新的ORM,它已经从头开始重新编写。虽然1.x和2.x中使用的ORM长期以来一直很好用,但它有一些我们想要解决的问题。

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

CakePHP 3.0中的ORM解决了这些以及更多问题。新的ORM目前专注于关系数据存储。在未来,通过插件,我们将添加非弹性搜索等非关系型商店。

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

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

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

以上是关于ORM如何在CakePHP3中运行的主要内容,如果未能解决你的问题,请参考以下文章

CakePHP 3.x ORM get()、find() 以及如何禁用befeoreFind()?

CakePHP3 迭代模型不起作用

CakePHP 3.0 ORM - 调试工作,翻转直播,抛出错误

在 CakePHP 3 中为文章添加评论

CakePHP3.4:如何发送 json 对象响应?

如果管理员在cakephp3.x中将其停用,如何限制db中的数据保存?