Drupal開發學習入門指引

我是雲客,《雲客drupal源碼分析》系列的作者,伴隨着drupal8第一個正式版本發佈到現在,該系列已經發布100期,超過100萬字,作爲中國投入精力最大、同時也是時間最早的第一批用戶之一,雲客覺得有義務幫助初學者準備好行囊,叮囑好一路上的注意事項,之前也零星寫過一些入門方面的資料,會在本文末給出鏈接(這些資料也很值得參考),本篇將爲您全面整理需要的一切和規劃學習步驟,這裏假定您是一個剛剛學會php正在尋找下一步方向的開發者。

首先是語言問題,drupal是國際協作的開源軟件,以英語作爲主要溝通語言,因此很多第一手資料是英語的,但不用擔心,一是現在中文資料已經有很多了,二是在官網文檔和源代碼註釋裏面使用的英語都非常簡單,建議您安裝有道詞典,該軟件可以劃詞翻譯,很方便,初中水平的英語基礎在翻譯軟件的幫助下,學習應該不成問題,不要被英語阻礙了您的步伐,事後會發現其實這沒什麼

然後是搭建本地開發環境,假定您使用win操作系統,這裏推薦您使用phpwamp或者phpStudy集成套件,這兩個軟件都很優秀,它們集成了多個php版本、主流的三種服務器軟件、多個mysql版本等等,可以隨意切換, 經過簡單的配置和修改本地的hosts文件就可以在本地安裝多個任意域名的站點,對於開發而言非常方便

再選擇一款優秀的集成開發工具(IDE),這裏推薦您使用phpstorm,這是一款非常優秀聰明的開發工具,智能化水平非常高,在新建項目時內置了以drupal模塊方式新建,這在開發上帶來極大的輔助,這裏列出一些最常用的操作和快捷鍵:
打開drupal類文件:“Ctrl+N”,粘貼類的完全限定名稱,回車即可,因爲drupal8系統使用PSR-0和PSR-4標準的類自動加載器,phpstorm會依據這自動打開,因此您不需要在文件系統裏面去找,非常方便,此外對着類名點擊鼠標中鍵可以起到同樣的作用,也正因爲drupal使用自動加載機制,所以在很多資料裏面在談及某個類文件時,只給出全限定類名,而不會提到類文件的路徑,有經驗的開發人員或IDE能夠通過類名判斷出文件所在位置
格式化代碼:“Ctrl+Shift+Alt+L”打開格式化代碼對話框
添加刪除註釋:行註釋“Ctrl+/”,塊註釋“Ctrl+Shift+/”,刪除時再按一次即可
在某路徑下所有文件中查找某字符:“Ctrl+Shift+F”,這非常有用,可以用來查找鉤子或函數在哪些地方被使用,關於該功能另外一個軟件Sublime也很不錯
查看一個類或接口在哪些地方被使用了:光標定位到類名,再點擊“Ctrl+B”或“Ctrl+ Alt+B”
雲客通常使用4種開發工具,phpstorm是最喜歡的,她還有很多非常棒的功能,這裏不一一例舉了

在drupal裏面有些變量非常巨大,如果您採用print_r($var);或var_dump($var);的方式查看,即便有16GB的內存,系統也會被耗盡卡死,因此您需要使用斷點調試工具,關於這請查看雲客的專門介紹:《php調試工具Xdebug使用教程》,地址:
https://blog.csdn.net/u011474028/article/details/79571909

開發所需的環境和工具準備好了,我們來談一談學習步驟:
首先您需要知道一些基本的drupal概念,比如:實體、插件、釋文、鉤子、主題、區塊等等,因此建議您花一週的時間去官網瀏覽一些基本文檔,同時也熟悉官網的結構,瀏覽完後您依然會對一些概念不甚理解,但沒有關係,有一個初步的印象足夠了,接下來去查看中文資料,對一些疑惑的地方做進一步的瞭解,以下這些網站都很不錯:
  愛碼文檔匯:http://www.nowicode.com/
  drupal中國:http://drupalchina.cn/
  drupal大學:http://www.drupal001.net/
還有很多,不一一列舉了,在瀏覽這些網站的時候不要對一些高深的內容惦念不放,這一階段的主要目的是熟悉基本概念、社區、資料來源等等,這會爲以後的學習打下基礎
接下來您需要一本簡單的系統性介紹drupal的中文書籍,推薦《Beginning Drupal 8》,地址:
     http://drupalchina.cn/node/6096
該書着重講解如何使用drupal8,篇幅不多,但較爲系統的讓您融會貫通了一次,有了一次完整的使用體驗,此時您應該可以在使用層面獲得一些成就感,對drupal的強大有更加深入的瞭解了,此時請您在心裏感謝一下那些參與該書翻譯的社區成員,龍馬組織大家花費了很多的時間,雲客有幸也參與了其中一章的翻譯,感受到社區的力量和良好氛圍,各類翻譯工作還在繼續,有朝一日您成爲過來人也請不要忘記輔助正在入門的新人。

現在您的基礎已經足夠了,可以開始學習開發,首先您需要對整個系統的主要結構有所瞭解,drupal是典型的結構簡單,但細節繁多,這裏需要告訴您一句話:任何web系統都是將請求轉化爲響應的系統。這是一個非常樸實但博大的理念,這是由symfony框架提出的,symfony在這個理念基礎上設計了系統基本流程,詳細請參考:
  https://symfony.com/doc/3.4/components/http_kernel.html#the-workflow-of-a-request
drupal8採用了symfony框架的部分組件,因此drupal也是基於這個流程的,這是系統的核心骨架,因此該鏈接應是您學習開發時詳細閱讀的第一篇資料。

關於drupal和symfony的關係,需要在這裏進行一下說明,有一些資料說drupal8是基於symfony的,這裏要告訴您這不能說錯,但並不恰當,準確的說法是drupal採用了symfony的一些組件,在代碼量上symfony佔比是非常小的,而且採用的組件中非常多的地方經過了繼承修改,如果說是“基於”,那麼容易誤導學習者,讓人誤以爲必須要先學習symfony才能開始學習drupal,而事實上完全沒有必要,當然如果您已經學習過symfony那麼對drupal的學習會很有幫助,沒有學過也沒關係,您可以直接開始學習drupal。說是 “基於”還帶來一個誤解,一些評論人員會說symfony的bug會影響到drupal,使得drupal不安全,更有甚者說drupal會受制於symfony,其實都是庸人自擾,他們太過高估了symfony的代碼佔比,又低估了drupal對symfony的繼承修改,雲客在此想告訴您:事物的發展是遞進的,依次建立在前者的基礎上,對前者的擔心沒有必要,就像我們做web開發不會去擔心操作系統或者硬件是不是足夠好一樣。

在瞭解了核心流程骨架後您可以從系統的入口index.php文件開始看一看,接下來馬上就是對composer運用的學習,她負責加載系統運行中的所有類文件,此時您可以開始閱讀《雲客drupal8源碼分析》系列了,從第一篇開始閱讀,此係列是依據系統執行流程發佈的,跟您的探索步驟相吻合,雖然取名爲源碼分析,實則也是開發者教程,是雲客從不知道變爲知道的過程中留下的資料,非常注重學習者的心理狀態,在您的學習路上答疑解惑,drupal很龐大,這個過程會很漫長,雲客將在此係列的字裏行間常伴您左右,直到您可以成爲一名drupal核心貢獻人員,這個過程中您僅需要的是:堅持,祝您心有所成,堅持並快樂着。

雲客爲您準備了一個學習模塊:yunke_help模塊,下載鏈接:
   https://blog.csdn.net/u011474028/article/details/80888152
該模塊專門爲drupal8學習者打造,通過她您可以查看到系統的許多數據,也提供了一些常用操作,不管是學習還是正式的開發,都帶來極大的方便,如果您需要一些開發方面的示例代碼,可以下載官網的示例模塊,下載地址:
   https://www.drupal.org/project/examples
更多的資源鏈接已經集成到了yunke_help模塊,請下載查看

最後講一講drupal大版本的區別和聯繫:
在drupal7時,系統是用過程式代碼開發的,伴隨php語言本身的發展,drupal8實現了一次大飛躍,採用面向對象方式開發(oop),重寫了幾乎所有代碼,因此對於學習而言,版本8是一個新的切入點,您不需要去專門學習D7版本;發展是遞進的,D8雖然代碼重寫了,但很多思想和概念是歷史版本的沉澱和延續,如您有興趣可以多去了解D7版本,如果您學習過D7那麼學習D8會容易許多;drupal9計劃在2020年推出,但您不必擔心學習過時,D9是在D8基礎上平滑升級,變化遠遠沒有D7到D8那麼大,在雲客看來對於開發者的影響會非常小,因爲已經跨入了OOP方式,極大部分代碼是不需要變化的,所學內容會被自然延用。

再過幾天,將迎來除夕,歡度春節,祝讀者新年快樂!

相關鏈接:
《drupal心得:難的價值、未來趨勢、擁抱王者》(寫於2018年):
https://blog.csdn.net/u011474028/article/details/86641647

《爲什麼選擇drupal?爲什麼做貢獻?怎麼學?怎麼貢獻?》(寫於2017年):
https://blog.csdn.net/u011474028/article/details/74295701

《drupal 8 入門》 (寫於2016年):
https://blog.csdn.net/u011474028/article/details/52514472

《雲客drupal8源碼分析系列》(首發於作者博客和愛碼文檔匯):
https://blog.csdn.net/u011474028
http://www.nowicode.com/

 

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

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章