您可以先參考這份課程簡介,了解課程結構及內容
我們在 2015 年 5 月與臺中科大資工系合作,舉辦了一場 Laravel 教學工作坊, 期能透過手把手的漸進式教學,讓學員學習到如何使用 Laravel 完成一個簡單的網路應用程式, 並學會如何從官方文件及線上參考資料持續精進自己的開發技巧,成為進入 Laravel 的敲門磚, 日後可獨立完成網路應用程式的開發工作。 參與的學員在 20 個小時內就學會使用 Laravel 5.0 建置一個簡易的 Blog 系統。 本課程共分為 12 個單元,依序如下:
本課程範例原始碼已放置在 Github 上,並將每一個步驟分別 commit,您可以透過 git 版本控制看到每一步的教學過程!
為配合學校電腦教室的電腦有還原系統的限制,因此本工作坊將採用 Laravel Dojo 所釋出之 wagon 免安裝 Laravel 開發環境。此單元將會講解 PHP 網路應用程式的運作原理,引導學員下載 wagon 並說明各內含之應用程式的使用方式,作為後續工作坊實作的基礎。
本單元將會教導學員在 cmder 指令列模式下使用 Composer,除了介紹 Composer 的相關指令外,並嘗試安裝由 Laravel 官方釋出的 laravel-installer 這個 global 套件。接著說明如何透過 Composer 及 laravel-installer 兩種方式建立 Laravel 新專案,以及 Laravel 專案內的目錄結構、環境設定等細節。最後,將教導學員使用 git 版本控制系統來管理專案原始碼。
Laravel 5 移除了部份原本在 Laravel 4 內的預設套件,雖然簡化了專案啟始時相依套件的數量,但也讓開發過程中少了一些便利性。為了讓後續教學/開發過程更順利,本單元優先教導學員如何在 composer.json 內加入所需套件後安裝;以及如何在 Composer 安裝完套件後,在 Laravel 內設定使用。
現代網路應用程式的核心就是透過 Route 機制來管控應用程式的門戶。本單元將簡述 Laravel 的 Route 運作機制,以及如何在 routes.php 內設定應用程式的路由。最後,將引導學員完成本工作坊實作專案內所需要之 Route 設定。
本單元將簡述 MVC 的基礎概念,並說明 Laravel 如何管理 View 相關的資源。接著,說明樣板引擎的概念與使用樣板管理頁面資源的好處。最後,將引導學員至 Start Bootstrap 下載本工作坊實作專案所需要的頁面素材,並實際引入 Laravel 內完成各頁面的製作。
為讓學員能提前了解自己的 Laravel 專案是否何在線上運作的?因此,本工作坊將在第一週結束前先行教導學員如何將自己的 Laravel 專案部署至 PaaS 平台上 (本工作坊將採用 pagoda box 平台)。藉由提前部署、多次部署,除了讓學員可隨時確認自己的學習成果外,也可累積學員實作信心。
在工作坊第二週的一開始,將開始討論與資料庫相關的內容。首先就是了解如何透過撰寫 Migration 做為資料庫版本控制的方法,以及如何使用 Laravel 提供的 Schema Builder 來操作資料庫內表格的建立、欄位設定等技巧。
緊接著在 Migration 之後就是要了解 Laravel Model 要如何建立並設定其與資料庫間的連接。另外,為了要解決在開發過程中暫時沒有資料可供顯示與測試的問題,Laravel 引入了 Seeding 的設計,協助開發者可以透過預先寫好的倒檔機制,讓開發過程中可以透過指令在資料庫內產生假資料,可省去自行輸入假資料或手動倒檔的麻煩。
本單元將帶領學員了解 Laravel 的 Eloquent ORM,學習如何將資料庫內的資料表以物件的概念來思考,並在 artisan 指令列底下及 Route 內練習如何操作 Model。
在 CRUD 這個單元的第二個部份,就是教導學員如何將之前寫在 Route 裡的所有動作邏輯,依照功能性分類搬至對應的 Controller,並說明 RESTFul 的路由設計。隨後將 Route、Controller、Model、View 三者的功能整合起來,在應用程式頁面上將資料庫的內容印出來。
一個網路應用程式的核心,其實就是處理資料的四個動作:建立 (Create)、讀取 (Read)、修改 (Update)、刪除 (Delete),簡稱 CRUD。本單元將把以上所學綜合統整起來,結合 Form Builder、Eloquent 特殊用法,完成資料讀寫的所有動作,實際完成一個簡易的部落格應用程式。
為了確保使用者輸入的資料是正確的,因此在儲存資料至資料庫前,一般應用程式內都會有資料驗證的機制。本工作坊的最後一個單元,要教導學員如何使用 Laravel 的驗證機制,做為應用程式確保資料正確性的防護機制。另外,也將說明如何將錯誤訊息輸出入畫面上,讓使用者了解如何修正表單輸入的內容。