ORM如何在CakePHP3中运行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORM如何在CakePHP3中运行相关的知识,希望对你有一定的参考价值。
我对如何使用Cakephp 3中的ORM有效地创建代码感到困惑。
我有2个月的CakePHP2经验,现在我希望继续使用CakePHP3,但我对CakePHP3的一些基础知识感到困惑:
- ORM如何在CakePHP3中运行?
- 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()?