1. 程式人生 > >雲客Drupal8原始碼分析之前言

雲客Drupal8原始碼分析之前言

Drupal是一個非常優秀的網站系統,可以說她是一個網站應用開發框架,也可以說是一個cms,她在世界範圍內被廣泛使用,最為人所知的是美國白宮、聯合國等知名機構的官方網站使用了她,隨著Drupal8的來到,她又達到了一個全新的高度,全面的由面向過程開發轉為面向物件開發,程式碼全部重寫,實現幾乎和以前的版本完全不同,所以她可以作為一個全新的起點去開始drupal之路,而不管之前是否是drupal的使用者;drupal是一個積極融入php大社群的系統,大量採用php大社群已經存在的優秀的元件,使得你在學習drupal8的過程中收穫頗豐。

drupal8的中文資料正在不斷累計,國內社群在不斷壯大,前天(2016年9月11日)我剛剛參加完drupal深圳社群的聚會,感受到社群的活躍,在聚會上做了一個Drupal8入門的分享,很大概的講了一些內容:

檢視請點選

我網名雲客,“雲遊天下,做客四方”之意,對未知的事物常懷好奇之心,喜歡到處走一走看一看,就像天上的雲一樣自由飄蕩俯瞰大地,走到drupal這裡想起寫雲客drupal原始碼分析系列技術分享部落格,一方面幫助別人貢獻於社群,一方面鞭策自己,爭取每週一篇

計劃這一系列分享是按主題來講的,如果你在追蹤drupal8的程式碼執行流程,那麼你會發現分享的順序就是drupal執行的順序,如果大家喜歡,歡迎留言以示鼓勵,可以轉載但需註明出處

我是雲客,【雲遊天下,做客四方】,微信號:php-world,歡迎轉載,但須註明出處,討論請加qq群203286137

 time:20160913


相關推薦

Drupal8原始碼分析前言

Drupal是一個非常優秀的網站系統,可以說她是一個網站應用開發框架,也可以說是一個cms,她在世界範圍內被廣泛使用,最為人所知的是美國白宮、聯合國等知名機構的官方網站使用了她,隨著Drupal8的來到,她又達到了一個全新的高度,全面的由面向過程開發轉為面向物件開發,程式碼

Drupal8原始碼分析外掛系統(下)

以下內容僅是一個預覽,完整內容請見文尾: 至此本系列對外掛的介紹全部完成,涵蓋了系統外掛的所有知識 全文目錄(全文10476字): 例項化外掛 外掛對映Plugin mapping 外掛上下文  

Drupal8原始碼分析臨時儲存與訊息服務

前言:臨時儲存與訊息服務之間並沒有什麼直接關聯,由於她們都是系統基礎元件,內容也比較簡單,為後續主題做準備,所以放在一起講解。 臨時儲存概述: 臨時儲存用來儲存一些臨時性的資料,超期後會被刪除,比如節點在儲存前的預覽資料,她和快取不一樣,她是臨時性的、不能被重建的資料,依據

Drupal8原始碼分析塊系統block

在drupal中系統流程指向一個控制器,通常控制器返回一個代表特定內容的渲染陣列,那麼還需要其他內容怎麼辦?這就是塊系統要解決的,她讓頁面精彩紛呈,可展示多種資訊或工具,如果沒有她頁面會非常單調,某種程度上說她是系統必須的,給各模組展示資訊提供頁面視窗。 從控制器返回的渲染

Drupal8原始碼分析配置實體查詢

本系列已經發布過內容實體的實體查詢,配置實體也是有實體查詢的,比如:塊知識庫服務(\Drupal\block\BlockRepository)中就用到配置實體查詢,以查出相同主題下的塊配置實體。配置實體的資料通過配置系統儲存,先回顧一下我們獲取一個配置值的方式:

Drupal8原始碼分析語言Language

據聯合國教科文組織曾釋出的《瀕危語言圖譜》的資料,在這顆星球上我們的文明有7000種語言,另據德國出版的《語言學及語言交際工具問題手冊》有5651種語言,具體有多少誰也說不清,但我們知道人類文明大體有數千種語言之多,中國就有129種語言,世界80%的人講83種主要語言,dr

Drupal8原始碼分析實體Entity(二)配置實體基類

配置實體基類是系統定義的一個用於配置實體的抽象基類,繼承自實體基類,完成了配置實體的大部分通用功能,具體的配置實體往往會繼承它,比如使用者角色實體,這樣寫少量程式碼即可,類定義如下: Drupal\Core\Config\Entity\ConfigEntityBase 實

Drupal8原始碼分析實體Entity(五)內容實體基類

原始碼分析重點在於在自己的大腦中重現開發者的思維過程,內容實體基類是drupal中很大的一個類,她要處理眾多的問題,內容實體的大多數功能都集中在這裡,開發者有許多的考慮,要弄清楚她的所有細節,學習者可能會覺得有些困難,這時需要明白任何複雜龐大的事物都是一步步累積發展起來的,

Drupal8原始碼分析外掛系統(上)

各位《雲客drupal8原始碼分析》系列的讀者: 本系列一直以每週一篇的速度進行部落格原創更新,希望幫助大家理解drupal8底層原理,並縮短學習時間,但自《外掛系統(上)》主題開始部落格僅釋出前言和目錄,這是因為雲客在思考一個問題:drupal在國外如此流行但在國內卻很小

Drupal8原始碼分析主題鉤子註冊theme.registry

以下內容僅是一個預覽,完整內容請見文尾:全文目錄(全文11509字):主題鉤子定義:主題註冊服務:主題實現:主題鉤子註冊:主題鉤子型別:函式註冊:掃描註冊:註冊順序及覆寫:主題鉤子、主題函式、模板命名:

Drupal8原始碼分析實體查詢entityQuery

通過本系列前面內容的學習你已經知道實體在資料庫中是如何儲存的,簡單來說儲存實體的資料庫表分為兩大類,專用表和共享表,共享表必有基本表,可能有版本表、資料表、版本資料表,總之大多數情況下一個完整的實體被儲存在多張表中,比如我們在後臺建立一個內容型別,她的資料至少儲存在六張表中

Drupal8原始碼分析表單Form API

在閱讀本主題前建議你先閱讀本系列前面的《表單定義示例》主題,看一看在drupal8中是如何運用表單的。表單處理流程:一般情況下表單流程是先顯示一個表單,使用者填寫,然後提交,系統處理,如果有錯則重新顯示並給出錯誤提示,反之沒有錯誤那麼完成後給出一個響應或者一個重定向響應,這是

Drupal8原始碼分析資料驗證Validation

各位《雲客drupal8原始碼分析》系列的讀者: 本系列一直以每週一篇的速度進行部落格原創更新,希望幫助大家理解drupal8底層原理,並縮短學習時間,但自《外掛系統(上)》主題開始部落格僅釋出前言和目錄,這是因為雲客在思考一個問題:drupal在國外如此流行但在國內卻很小

Drupal8原始碼分析主題協商theme negotiator

drupal主題系統十分靈活,你可以全站使用一套主題,用響應式設計去相容移動端和pc端,如果響應式無法滿足要求,你可以在各端分別使用不同的主題,但其靈活性遠不止如此,實際上在同一個站點中你可以根據任意條件使用不同的主題,系統後臺設定的只是預設值而已,比如在pc端或移動端你可以

Drupal8原始碼分析響應附屬處理attachments_processor

在閱讀本主題前,你需要先閱讀本系列的渲染陣列、渲染器、渲染佔位符等主題 附屬物attachments就是渲染陣列的#attached部分,這裡稱為“附屬物”而不叫做“附件”,以便和圖片、檔案等概念相區別,附屬物有如下8個型別(以在#attached中的鍵名列出,如果添加了其

Drupal8原始碼分析資料庫系統及其使用

在開始本主題前請允許一點點題外話: 在我寫這個部落格的時候(2016年10月28日),《Begining Drupal 8》這本書已經翻譯完成並做成了PDF格式供給大家免費下載,這是一本引導新人學習drupal8的入門級教程,由drupal中文社群站http://drupa

Drupal8原始碼分析快取系統Cache

在介紹drupal8的快取系統前我們先了解一下快取系統的本質及特性,快取的存在依賴於兩個目的:節省資源和提高速度,起不到這兩作用則快取沒有存在的必要,當一個結果需要進行大量計算才能得到,而它又不會頻繁

Drupal8原始碼分析PHP程式碼儲存PhpStorage

在做專案時,有時需要儲存php程式碼,由於她是可執行的,我們並不希望被隨意執行或者修改,drupal提供了一個php程式碼儲存元件來保障這一點,她使用檔案系統儲存,本篇講解她的使用和原理。 前備知識點: 首先我們需要明確知道檔案系統操作的以下幾點: 一個檔案有三個時間:

Drupal8原始碼分析內容實體資料庫表結構及表對映table mapping

“欄位”概念 在drupal中提到“欄位”這個概念時,請不要理解為資料庫中表的一個列,這不是一個概念,它是指一個欄位物件,充當著實體物件的屬性,也是一個列表型別的型別化資料物件,當本系列提到“欄位field”一般均是指欄位物件或欄位定義物件,而資料庫表中的欄位列,則將其稱為

Drupal8原始碼分析快取上下文CacheContext

“上下文Context”這個詞是什麼意思呢?平常生活中它常見於語言、文字交流裡面,意思是當前交流處於一個特定的環境下,依託前面的內容交流才有意義 比如這句話:“他正在學習drupal”,如果單獨說是沒