Drupal 概念

版本

Release Date
釋出日期
8.2.4 2016 年 12 月 7 日
7.53 2016 年 12 月 7 日
6.38 (不支援) 2016 年 2 月 24 日
5.23 (不支援) 2010 年 8 月 11 日

實體型別

在 Drupal 的早期版本中,現場系統僅用於內容型別。現在,由於 Entity API,我們可以將欄位新增到其他內容,例如註釋。可現場實體使 Drupal 非常靈活。實體型別是將欄位組合在一起的有用抽象。以下是 Drupal 核心中的實體型別:

  • 節點(內容)
  • 評論
  • 分類術語
  • 分類詞彙表
  • 使用者

你還可以構建新型別的實體型別,其中上述選項不適合你的需求。

繫結

Bundles 是可以附加欄位的實體型別的實現。你可以將 bundle 視為實體型別的子型別。例如,對於內容節點(實體型別),你可以生成文章,部落格文章或產品等繫結(子型別)。但是,並非所有實體型別都具有繫結包。例如,使用者沒有單獨的包(子型別)。對於允許包的實體型別,你可以根據需要建立任意數量的包(子型別)。然後,使用 Field 系統,你可以為每個包新增不同的欄位。示例包括基本頁面上的檔案下載欄位和文章上的字幕欄位。

欄位

欄位是可重用的內容。在技​​術術語中,每個欄位都是原始資料型別,具有用於編輯的自定義驗證器和小部件以及用於顯示的格式化器。你可以進一步閱讀開發人員使用 Drupal 7 Fields API 的指南。

與實體相關的重要事項是,可以將 Fields 新增到任何繫結(或實體型別)以幫助組織其資料。

例如,假設你使用非結構化文字欄位建立內容型別,並使用 HTML 來構建部分內容型別,例如摘要部分或價格。這將使得控制這些顯示方式或在不同型別的相關內容之間建立聯絡變得更加困難。

這是使用欄位必不可少的地方。你可以建立 Long Text 型別的摘要欄位以及 Decimal 型別的價格欄位。

實體

實體將是特定實體型別的一個例項,例如評論,分類術語或使用者簡檔,或者諸如部落格文章,文章或產品之類的繫結。

你可以使用 entity_load 載入任何實體。但請注意,核心不提供儲存或刪除功能,但是由於 Entity API 模組,新增了缺失的部分(entity_create(),entity`_save(),entity\_delete(),entity\_view() 和 entity\_access()`)。

把它放在物件導向的設計/程式設計術語中……

如果你來自 OOD / P 背景並試圖更好地理解這些關鍵概念是什麼,下面建議的對映可能會有所幫助(雖然從純粹主義者的角度來看並非嚴格如此): -

  • 一個實體型別基類
  • 一個是一個擴充套件類
  • 一個領域是一個類成員屬性變數欄位例項 (根據你的喜好命名)
  • 一個實體是一個物件例項一的擴充套件類

所有這四個 OOD / P 概念都是特殊的,因為它們是可序列化的(儲存 - 例如儲存到資料庫或檔案中)。序列化通過 Entity API 進行。