Magento 2.1:使用实体管理器


27

从2.1 Magento引入Magento/Framework/Model/EntityManager

我在这里可能是错的,但是据我所知,它是替换Magento/Framework/Model/AbstractModel通过继承实现功能并通过组合来解决此问题(仅供参考:https : //en.m.wikipedia.org/wiki/Composition_over_inheritance

您可以在核心文件中找到一个示例:https : //github.com/magento/magento2/blob/59671558ecdab652b40db2d1a7c63d5b1dea0a92/app/code/Magento/Cms/Model/ResourceModel/Block.php

基本上,所有CRUD操作都在类中显式声明,然后推迟到EntityManager该类。在2.1之前,父方法是通过继承调用的。

所以我的问题是:

  • EntityManager2.1版之前的继承系统有什么好处
  • 简单地声明CRUD方法(如上面的例子)足以启动定制CRUD模块中实现它还是有更多?

1
这不是一个答案-但我可能会担心,使用EntityManager的好处之一是可能会注入存储库类型系统-在这种情况下,如果实体已被拉入数据库,则加载可能会在内存中发生,而不是访问数据库内存等
Navarr '16

Answers:


16

目前,我们不建议您为实体使用EntityManager,因为这是一项未完成的功能,我们计划使配置更具声明性。

EntityManager的思想是:

  • 通过接口允许持久数据实体(无需从抽象类扩展)
  • 使持久的显式可扩展
  • 模块化

谢谢您能为您添加答案,为什么不建议您使用它呢?(未完成的功能,越野车,其他吗?)
拉斐尔(Raphael)在Digital Pianism上,2016年

1
是的,未完成的期货,我们计划使配置更具声明性
KAndy '16

4
Moar XMLs,MOAR!:)
nevvermind

我们能否知道他们将完成未完成的期货的预计日期是什么?
Toan Nguyen

3
由于Magento积压工作直接受到社区和合作伙伴反馈的影响,因此可以对任何任务进行优先级排序和取消优先级排序,并且没人知道具体任务何时完成和发布。
康迪
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.