在寫這篇文章前半年,我對 PHP 既熟悉又陌生
在工作跟興趣方面我對以 PHP 語言寫成的網站服務很熟悉,但是我對 PHP 的認識僅止於配置設定檔。
在前一個工作中讓我知道有個名為「Laravel」的 PHP framework,然後公司用 Laravel 做的網站專案速度都很快。不過因為工作範圍加上自己不會寫程式的關係,對 Laravel 的認知很少,最多就是幫同事建構 Laravel 專案的運作環境,以及在系統 cronjob 上加上排程作業而已。
被認為實力不足而資遣,待業找工作中的自己下定決心要學好 PHP 及 Laravel,不再讓「不會寫程式」這件事作為自己能力的短板。如果能將 Laravel 變成核心能力之一,加上原有的網管知識就能讓自己成為「會寫 Laravel 專案的 MIS」,或是「具備後端知識的 Laravel 工程師」。
在更新履歷表,寫上「會用 Laravel」之前,我想透過三個 Laravel 專案驗證及測試自己的學習目標,而部落格網站(以下稱 larablog)是其中之一。
做中學
從寫 Joomla! 書籍以及擔任講師的經驗中,我發現透過「建立專案網站」,也就是「做中學」的方式來學習是很有效的方法:
- 網站各項功能的建立會使用到書籍或課程中的知識,在建構的過程中會發現自己對該項目的瞭解是否足夠,是否懂得應用。
- 目標明確:縱使學習中各項知識都瞭解習題也有好好做,要是沒有個實踐的目標,過一段時間不使用就忘得差不多,還給老師或書籍了。
- 網站就是你的作品集。有個實際可閱覽的網站,向面試官說明網站的製作過程,使用到的技術等等,為己在履歷表記載的資料背書。
部落格系統:簡單,也不簡單
部落格網站,或是說以部落格形式顯示內容的網站,在本文撰寫的當下已是很普通的網路服務,而且自己就有 abo.tw 這個以 Joomla! 系統建置,供自己發表文章、心得的部落格。
上述內容是以使用者立場來看「部落格」這個網路服務,如果換成 Laravel 初學者呢?以自己的認知,要使用 Laravel 建構部落格專案要具備以下能力:
- 你要知道如何建置 Laravel 專案的運作環境:通常要依據作業系統安裝 AMP 環境(XAMPP、WAMP、MAMP 等),知道 Web 伺服器、資料庫伺服器與 PHP 的關係,如果要使用 Docker 環境還需要容器化環境跟主系統環境的互動。
- 你需要注意 Laravel 各目錄所代表的意義, 尤其是 Laravel 的預設網頁根目錄是 /public,如果在Web 伺服器沒有先行設定,瀏覽網站就會看到 403 錯誤訊息回報。
- 會使用終端機程式,輸入指令進行 Laravel 專案作業。
- 瞭解 Model、View、Controller、Route 的運作模式。
- 會使用 Git 管理自己的程式碼,也可以部署到正式運作環境。
- 會接觸各項前端技術,用來美化網站畫面及精進功能操作。
對業界老手來說已經是吃飯喝水般的輕鬆,但是對初學者來說每一個都是大坑,萬事起頭難。
實踐目標
用架構成熟,套件眾多的 Joomla! 系統建置部落格,跟從頭開始打造的 Laravel 部落格專案,是完全不同的建置體驗,很難說日後會用哪個作為創作平台。不過自己希望能從開發、完善的過程中檢視自己對 Laravel 的瞭解程度,因此「自己覺得好用,會持續使用的部落格系統」是我的努力目標。
以下是我在用 Laravel 建置部落格系統時希望要達到的目標:
- 熟悉資料庫的 CRUD(增刪改查),以及資料表關聯。
- 熟悉 Blade 主題切版的規劃、子版的整合,及 Livewire 的應用。
- 搜尋並利用現有的 Laravel 套件整合到專案中。
- 學習如何將外部網站服務(如 hCAPTCHA、Google、Facebook 等)匯入到 Laravel 專案。
- 學習如何利用 Voyager 套件建構專案管理區,加速專案功能建置。
這種事情不是常常有,得好好紀錄下來
我會將建構部落格系統的過程盡可能詳細的紀錄下來,同時作為展示這個部落格時的文章,這一系列的文章就叫做:從零開始的 Laravel 部落格建置日誌。
說是從零開始,但並不是要每個功能都從程式碼開始一個一個刻,這就違背了使用框架建構專案的精神:使用框架及前人努力的結晶,加速完成目標。
我的目的是希望從發想開始到完成部落格系統的過程能夠如實紀錄下來,給自己作為技術筆記,因為過程中所使用的技術跟知識同樣可以應用到其他專案。
除此之外也是想給對其他對 Laravel 有興趣,但是不曉得從何開始的朋友一個參考:你可以透過系列文章瞭解實際建構的流程,也可以利用這個建構好的專案作為自己的自媒體平台。
居住在臺灣的 Joomler,期望以程式設計、開放原碼推廣活動收入養活一家老小。
35 歲後改姓李,id 作為曾為郭姓的證明。
FFXI:Abokuo@Sylph鯖、よろしくです。