“实体API”在Drupal API中添加了什么?为什么模块依赖于它?


12

所述实体API模块延伸在Drupal中定义的实体的API。在哪种情况下,模块应使用该模块提供的API?如果实现新实体的模块依赖于Entity API模块,是否更易于编写?

通过“更容易被写成”我的意思是使用模块实体API将需要更少的代码比不使用的模块被写入实体API

我阅读了项目页面,但是我仍然不完全明白为什么创建依赖于Entity API模块的模块,而不是仅依赖于Drupal核心代码的模块的原因。我知道,扩展规则并实现实体的模块应使用Entity API模块;在第一种情况下,原因还在于“ 规则”模块依赖于Entity API模块。


1
您链接的项目页面提供了模块功能的相当具体的概述。您对模块为什么要依赖模块而不是模块模块有什么疑问?
jhedstrom 2011年

如果您不使用Entity API模块,则最终会编写类似于此沙盒项目的模块。请注意,此沙盒项目没有测试,只有一个贡献者,而Entity API则有很多。
paul-m

Answers:


15

虽然不完整,但是我知道一些优点:

  • Drupal核心仅提供一个EntityController来加载实体。对于保存,更新和删除,您需要自己编写或使用Entity API。
  • 您可以使用hook_entity_property_info()公开实体的基本属性,有关示例,请参见privatemsg_entity_property_info()。这样做的好处是rules.module知道您的实体属性,并且您可以使用规则读写它们。您还可以免费获得令牌集成。
  • 它还可以自动为您提供实体的管理UI

管理员ui是什么意思?其中一些是由核心处理的。
googletorp

2
Core提供了一个用于配置字段并将其附加到实体的UI,实体API提供了一个用于创建和管理自定义实体的实体的UI,Core并没有做到这一点。
Berdir 2011年

1
不要忘记了不起的meta_wrapperdrupalcontrib.org/api/drupal/…,它使您可以轻松地在代码中访问字段的值
mojzis,2012年

7

自动视图集成,管理UI,可导出实体(所有这些都是可选的)。加上很多语法糖,这些东西并没有包含在D7中,您需要它们(通用entity_save(),entity_create(),将自定义逻辑放在“实体类”中...)

另外,模块(efq_views,规则)确实可以通过属性来使事情变酷。


-1

我确实相信,实体api(模块)在发布之前基本上已从drupal 7内核中删除,因为它被认为是不完整的。只有基本的api CRUD的基本功能留在了drupal内核中用于其GM版本。

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.