天天看點

雲客Drupal源碼分析之實體類型管理器、實體類型、實體Entity

各位《雲客drupal源碼分析》系列的讀者:

本系列一直以每周一篇的速度進行部落格原創更新,希望幫助大家了解drupal底層原理,并縮短學習時間,但自《插件系統(上)》主題開始部落格僅釋出前言和目錄,這是因為雲客在思考一個問題:drupal在國外如此流行但在國内卻很小衆,一個重要原因應該是中文資料的缺乏,我們是否能夠找到一種方式來激發中文資料的出産?此時同是積極推動者的晴空提出能否用付費閱讀的方式來鼓勵更多作者?并建立了一個付費閱讀drupal資料的網站,個人覺得也許這能激發高品質原創内容的出産,學習者支付很少費用可以節省大量學習時間是劃算的,作者也能配置設定精力去開發高品質内容而得到報酬,drupal普及開了對大家都有益處,為了支援晴空的這個項目,雲客決定将從《插件系統(上)》主題開始後續内容全部放在這個網站上收費閱讀,讀者隻需要付很少費用即可,雲客在這裡承諾該系列得到的所有訂閱費用全部捐獻給drupal深圳社群,用以組織活動等等,發展社群需要大家貢獻力量,該網站已于2017年3月29日上線,請移步:http://nowicode.com/ 閱讀本篇完整版

我是雲客,【雲遊天下,做客四方】,聯系方式見首頁,歡迎轉載,但須注明出處

****************************************以下為前言和目錄,請移步:http://nowicode.com/ 閱讀本篇完整版*******************************

 如果對實體這個概念還不清楚的話請閱讀本系列的《實體概述》,本篇将開始講解drupal8的實體系統,是關于實體系統的一個開始,有許多内容會在後續主題中連續釋出,學習它所需基礎知識比較多,但如果是跟着本系列釋出順序一直看到這裡那麼所需基礎知識你已經具備了,如果有欠缺請翻看前面的主題,在後續主題中如果需要基礎知識将會先介紹基礎,實體系統是一個很大的子系統,内容比較多,但結構卻很清晰,學習可以循序漸進,本系列按照執行流程和結構将它分解為許多子内容塊,避免難度過高,本篇看一看drupal是如何實作實體這個概念的。

   如果你是按照drupal執行流程(也是本系列的釋出順序)來學習的話,那麼遇到的第一個實體相關概念就是使用者角色實體了,位于Dr。。。。

實體類型管理器:

在閱讀本篇前務必閱讀本系列插件、鈎子相關主題,在drupal中實體是基于插件機制來實作的,所有的實體都是一個插件,這句話很重要:一個實體就是一個插件!在插件篇中已經講到系統定義插件管理器來管理使用某個類型的全部插件,對于實體這個類型的插件drupal使用實體類型管理器來管理:

服務id: entity_type.manager

類:Drupal\Core\Entity\EntityTypeManager

擷取方式:\Drupal::entityTypeManager();或者$con、、、

實體類型管理器:

在閱讀本篇前務必閱讀本系列插件、鈎子相關主題,在drupal中實體是基于插件機制來實作的,所有的實體都是一個插件,這句話很重要:一個實體就是一個插件!在插件篇中已經講到系統定義插件管理器來管理使用某個類型的全部插件,對于實體這個類型的插件drupal使用實體類型管理器來管理:

服務id: entity_type.manager

類:Drupal\Core\Entity\EntityTypeManager

擷取方式:\Drupal::entityTypeManager();或者$con

實體:

在drupal中實體是一個插件,位于子產品的\src\Entity目錄,他們都實作了如下接口:

Drupal\Core\Entity\EntityInterface

系統提供了、、、

繼續閱讀