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

这里的技术是共享的

You are here

Drupal基本概念辨析 - Entity types - Bundles - Fields - Entity

shiping1 的头像

与本文相关的Drupal专业术语的翻译说明:

  • Entity types - 实体类型
  • Bundles - 包
  • Fields - 字段
  • Entity - 实体

很多朋友在学习Drupal的过程中都会遇到上述4个有关联的术语,搞不清楚它们是什么?它们之间有怎样的关系?等等一些概念上的问题。本文旨在帮助大家厘清这4个基本概念。

实体类型(Entity types)

实体类型本质上是抽象的拥有相同属性的个体的集合。

举例来说,在Drupal网站中,一条评论是一个独立的个体,每条评论都拥有相同的属性,如:评论标题,评论人的姓名,评论人的邮箱,评论人的主页,评论内容。那么所有评论就可以抽象为一个集合,这个集合就是Drupal中的实体类型。

常见的Drupal实体类型:

  • 节点
  • 评论
  • 分类术语
  • 用户简介(profiles)

包 (数据扩展)(Bundles)

包是实体类型的实现。同一实体类型下面的不同的包,除了拥有相同的属性以外,往往还拥有不同的属性。实体类型可以拥有几个包,也可以没有包。

以Drupal实体类型中的节点来举例说明,节点这个实体类型可以分为文章,页面,博文,商品等多个包。包之间即有相同的属性,如都有标题,发布时间,作者等等;包之间也有不同的属性,如商品拥有的价格属性是别的包所没有的。

字段(Fields)

字段即数据库表中的字段,或者说数据库表中的列。用于保存上文中所提到的属性的值。字段可以用于任何包 (数据扩展),或直接用于实体类型(当实体类型没有包时)。

实体(Entity)

实体是实体类型中的个体组成部分,学术点的说法是:实体是实体类型的实例。

例如:在博文这个实体类型的包(数据扩展)中,一篇博文就是一个实体。

上面写的内容很枯燥,像教科书,读起来头有点犯晕是吗?没关系,下面我来做两个类比,大家就不晕了。O(∩_∩)O

第一个类比:用面向对象的编程概念和这些Drupal术语类比,适合熟悉面向对象技术的程序员朋友。

第二个类比:用日常生活中的餐具和这些Drupal术语类比,适合非程序员朋友。

Drupal术语面向对象餐具
实体类型(Entity types)父类餐具
包(Bundles)子类筷子
字段(Fields)类的属性竹子,两根,一头大来一头小(不是棺材哟O(∩_∩)O)
实体(Entity)对象一双筷子

来自  http://mydrupal.org/drupal%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%E8%BE%A8%E6%9E%90-entity-types-bundle...

普通分类: