新北市樹林國小 Laravel 工作坊

您可以先參考這份課程簡介,了解課程結構及內容

新北市樹林國小 Laravel 工作坊

我們在 2015 年 7 月與新北市樹林國小合作,舉辦了一場 Laravel 教學工作坊, 期能透過手把手的漸進式教學,讓學員學習到如何使用 Laravel 完成一個簡單的網路應用程式, 並學會如何從官方文件及線上參考資料持續精進自己的開發技巧,成為進入 Laravel 的敲門磚, 日後可獨立完成網路應用程式的開發工作。 參與的學員在 30 個小時內就學會使用 Laravel 5.1 建置一個整合 Open ID 的 Blog 平台。 本課程共分為 15 個單元,依序如下:

  1. 開發環境建置
  2. PHP語法基礎與物件導向
  3. Composer套件管理
  4. 啟動Laravel與環境設定
  5. Package 安裝與使用
  6. Route 路由控制
  7. View 與 Blade 樣板引擎
  8. Migrations 與 Schema 操作
  9. Model 設定與 Seeding
  10. Eloquent ORM
  11. 使用 Controller
  12. CRUD 綜合運用
  13. 驗證與訊息
  14. 使用者認證
  15. 整合 Open ID
  16. 工作坊總結

本課程範例原始碼已放置在 Github 上,並將每一個步驟分別 commit,您可以透過 git 版本控制看到每一步的教學過程!

課程各單元投影片

開發環境建置

為讓參與學員可以快速、無痛地建置 Laravel 的開發環境,本工作坊採用由 wagon 免安裝 Laravel 開發懶人包做為環境建置的方案。此單元會先講解網路應用程式的運作原理,並引導學員下載 wagon 進行安裝,接著說明其內含之應用程式,作為後續工作坊實作的基礎。

PHP 語法基礎與物件導向

本單元將為學員介紹 PHP 的語法基礎,並複習 PHP 物件導向的基礎觀念,以及從 PHP 5.3 以後的各項語法新特性做全面性的回顧。讓參與學員在學習 Laravel 框架前能有良好的 PHP 基礎觀念,後續才不會因為卡在基礎觀念不足而無法順利進階。

Composer 套件管理

本單元將說明如何使用 Composer。從安裝與運作原理介紹起,進而帶入 Composer 指令操作,示範如何使用 Composer 管理套件,並利用現有的 Component 快速建置網路應用程式。最後將練習安裝 global 套件,讓學員對 Composer 的使用與操作有全面性的認識。

啟動 Laravel 與環境設定

本單元將說明如何透過 Composer 及 laravel-installer 兩種方式建立 Laravel 新專案架構,以及 Laravel 專案內的目錄結構、環境設定等細節。最後,將教導學員使用 git 版本控制系統來管理專案原始碼。

Package 安裝與使用

本單元將教導學員安裝套件,包括可以顯示豐富錯誤訊息的 whoops 及協助除錯的 debug-bar。單元內將會從尋找/選擇 Package 的技巧開始說明,到實際示範如何安裝 Package 及在 Laravel 內設定使用的完整流程。

Route 路由控制

現代網路應用程式的核心就是透過 Route 機制來管控應用程式的門戶。本單元將簡述 Laravel 的 Route 運作機制,以及如何在 routes.php 內設定應用程式的路由。最後,將引導學員完成本工作坊實作專案內所需要之 Route 設定。

View 與 Blade 樣板引擎

本單元將簡述 MVC 的基礎概念,並說明 Laravel 如何管理 View 相關的資源。接著說明樣板的概念與使用樣板管理頁面的好處。最後將引導學員至下載本工作坊實作專案所需要的頁面素材,並引入專案內完成頁面製作。

Migrations 與 Schema 操作

從本單元開始,將討論與資料庫相關的內容。首先就是了解如何透過撰寫 Migration 做為資料庫結構版本控制的方式,以及如何使用 Laravel 提供的 Schema Builder 來操作資料庫內表格的建立、欄位設定等操作技巧。

Model 設定與 Seeding

為解決在開發過程中暫時沒有資料可供顯示與測試的問題,將說明如何用 Seeding 協助開發者可以透過預先寫好的倒檔機制,讓開發過程中可以透過指令在資料庫內產生假資料,省去自行輸入假資料或手動倒檔的麻煩。

Eloquent ORM

本單元將帶領學員了解 Laravel 的 Eloquent ORM 設計,學習如何將資料庫內的資料表轉以物件的概念來思考,並練習在 tinker 互動指令列 (REPL) 或 Route 內操作各項 Eloquent ORM 的語法,包括新增、查詢、更新、刪除等 CRUD 指令。

使用 Controller

本單元將教導學員如何將課程範例裡,原本寫在 Route 裡的所有動作邏輯,依照功能性分類搬至對應的 Controller,並說明 RESTFul 的路由設計。隨後將 Route、Controller、Model、View 三者的功能整合起來,在應用程式頁面上將資料庫的內容印出來。

CRUD 綜合運用

一個網路應用程式的核心,其實就是處理資料的四個動作:建立、讀取、修改、刪除,簡稱 CRUD。本單元將把以上所學綜合統整起來,結合 Form Builder、Eloquent 特殊用法,完成資料讀寫的所有動作,實際完成一個簡易的部落格應用程式。

驗證與訊息

為了確保使用者輸入的資料是正確的,在儲存至資料庫前,需要有資料驗證的機制。本單元將教導學員如何使用 Laravel 的驗證機制,做為應用程式確保資料正確性的防護機制。另外,也將說明如何將錯誤訊息輸出至畫面上,讓使用者了解如何修正表單輸入的內容。

使用者認證

本單元將介紹 Laravel 內建的使用者認證機制,並示範如何依照官方文件設定各項使用者認證相關的功能,並在工作坊範例應用程式內實作使用者註冊、使用者登入及登出、忘記密碼、寄出密碼重設連結與密碼重設等標準使用者認證相關功能。

整合 Open ID

本單元將擴充原本 Laravel 內建的使用者認證機制,整合由新北市教育局所提供的 Open ID 認證服務至原有的登入流程內,讓工作坊範例應用程式也可使用新北市教育 Open ID 帳號登入。未來學員在開發 Laravel 應用程式時,也可以享有 Open ID 所帶來的便利性。

工作坊總結