欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal7 实体

shiping1 的头像

DRUPAL 7 --- 一个关于实体的介绍  不指定

drupal水滴 , 2012/11/07 09:56 , drupal问答 , 评论(0) , 阅读(1030)  |  |  
DRUPAL 7 --- 一个关于实体的介绍(官网原文翻译) 
author by frank on Tue, 10/09/2012

也许你听说过drupal7中的实体,想知道他们是什么,也想知道如何利用他们工作。 Entity API的新特性使得它在开发人员中变得越来越流行,他们能够通过它创建更轻型更灵活的解决方案。

在Drupal社区中通常把建站的过程看成玩一种复杂的儿童玩具。我们能都建立各种实体类型(Entity types),建立实体数据扩展(Bundles),我们也可以添加字段,然后再创建各种实体。
本文重点阐述  Entity types > Bundles > Fields > Entities 之间的的关系。实体概念的出现可以算的上Drupal 7最重要的新特性之一。一些如CCK之类的备受开发者欢迎的模块通过它被引入了Drupal 7的核心。

下图中向大家展示了一些Drupal 7中的实体类型的例子,在这些实体类型中也包含了一些实体。

下面让我们仔细看一下这些概念,这属于一些鸡生蛋的问题,有一个不存在,其它都无从谈起。

1. Entity types(实体类型)
起初,字段系统(field)仅仅被用在内容类型上面(content type)。但是现在,有了Entity API 的存在,我们可以把字段添加到Drupal的任何部分,像评论(comments),用户(users)等,这样一来使得drupal变得更优秀更灵活。
一个实体类型其实是一组抽象集合来表示一组字段集合。让我们来考虑一些实体类型的例子。

。 Nodes (content)
。Comments
。Taxonomy terms
。User profiles
如果以上现有的选择无法满足需求时,你也可以构造新的实体类型。想了解更详细的这方面知识,请参考using the hook_entity_info 和 Entity API扩展: entity_crud_hook_entity_info.

2. Bundles(数据扩展)//如果有更贴切的中文释义请告知
Bundles是一种能够被附加字段(fields)的实体类型(Entity Type)的实现。我们能够把Bundles想象成一个实体类型的子类。举个例子来说针对于node这个实体类型来说,我们可以形成子诸如articles,blogs,或是products之类的子类。
但是并不是所有实体类型都有Bundles,比如user就不能有独立的Bundles或是子类。通过Bundles,你可以拥有许多你想要的实体类型的子类。然后利用drupal的字段系统,你能够为这些bundles创建诸如文件下载,位置字段。

3.Fields
字段是一种可复用的内容片断,从技术层面讲,每个字段是一个原始的数据类型,它包含自定义的验证器,编辑界面和显示方式。
你能够从 Drupal 7 Fields API 里得到更多的相关技术资料。
需要明确的一点是,实体(Entities)字段可以被添加到任何Bundles或Entity Type来帮助组织他们的数据,比如你创建了一个松散的文本字段,并需要用Html去构造它的一部分,像价格字段或是摘要字段。这样一来控制他们的显示方式或是建立不同类型的内容关联将变得非常困难。

4.Entity
一个实体是一个特定实体类型的实例,比如一篇文章,一条评论或是一个分类
你可以用 entity_load来加载任何实体,但要注意的是,drupal核心并不提供保存和删除的功能。不过Entity API 模块弥补了这些缺憾。

如果您熟悉Drupal 6并且刚接触Drupal 7,实体概念的出现是个好消息。在Drupal 6和之前,用户和评论还没有node一样的能力,它们没有字段,翻译和版本,等等。这同时意味着诸如views之类的模块将不能很好的控制用户和评论。尽管有一些模块尝试将它们导入node,但是这意味着所有node对象的附加信息都被加入了评论中。
然而,Drupal社区根据不同实体类型模型的共同点创造了这个抽象的概念。用这种方法,用Entity API可以尝试各种灵活的方案,有很多利用entity的模块在drupal 7下被开发,并且通过entity更容易的关联不同的内容,并建造更灵活的架构。

Entity API 模块是drupal核心的功能,它提供了一个统一的方法去处理Entities和它们的属性。另外它提供了一个entity CRUD 控制器,来简化创建新实体类型的流程。

原文地址:http://drupal.org/node/1261744
翻译文档来自:http://www.drupalcool.com/node/37

来自 http://www.majormoves.net/post/1814/
普通分类: