Laravel 系列 - 1: Laravel 介紹與架構

更新於 發佈於 閱讀時間約 4 分鐘

在這次的新單元中,我們將介紹Laravel這個框架以及它所實現的一些功能。

簡介

Laravel是一個開源的PHP網頁框架,支援MVC架構。

最重要的是,目前Laravel持續有穩定的更新版本,這代表框架本身會不斷修正漏洞並增加新功能,實在非常方便。

此外,在進行版本升級時,官方會提供文件來提醒開發者需要注意的事項。如果需要專業評估,還有網站可以幫助你評估專案的升版項目,參考連結:Laravel Shift

MVC 架構

由於 Laravel 框架本身支援 MVC 架構,我想先為不熟悉 MVC 的讀者簡單介紹一下各層級。

MVC 架構,顧名思義,就是將模型(Model)、視圖(View)和控制器(Controller)三個部分區隔開來,這樣開發者在開發與維護時會更為方便。不過這只是最基礎的架構,實作上我們往往還會細分出各種層級以實現各個步驟。

  • 中介層 withMiddleware:針對指定路徑進行中介處理,例如身份驗證(Auth)、API管理(APIM)等。
  • 排除中介層 withoutMiddleware:針對特定路徑排除相關的中介處理,常用於單元測試。
  • 服務層 Repository:專門負責取得欄位內容或資料本身。
  • 資料交互層 Service:負責數值操作與處理,例如針對某位使用者的使用紀錄進行推薦。

另外,Laravel 也支援排程功能,只需將要執行的排程指令寫在 app\Console\Commands 目錄下即可!詳情請見: https://ithelp.ithome.com.tw/articles/10222395。

DTO 與 VO

DTO(Data Transfer Object)主要用於資料傳輸,通常只包含資料的欄位及對應的 gettersetter 方法,而不涉及業務邏輯的處理。一般來說,DTO 用於層與層之間的資料傳遞。

VO(Value Object)則主要用於封裝特定值的相關內容(包括業務邏輯),而且 VO 的內容是不可變的,因此其參數通常具有constant屬性。一般來說,VO 用於模型層,以便於處理相關邏輯。

在 MVC 架構中,DTO 與 VO 的概念容易混淆。簡單來說,兩者的區別在於資料的取得方式傳遞方式:DTO 強調的是欄位的內容,僅用來傳遞本身的值,而 VO 則可以取得業務邏輯後的內容,但只能取得固定的值。

Coding Style

Laravel 的開發團隊推出了一個 Coding Style 的套件。如果你的團隊尚未決定自己的編碼風格,不妨試試 Laravel Pint。你可以參考這篇介紹文章:使用 Laravel 團隊的 Coding Style 簡單介紹 Laravel Pint

總結

根據筆者的經驗,在臺灣使用 PHP 的企業中,大約有一半採用 Laravel 框架,另一半則使用 Yii2。個人而言,我認為 Laravel 的擴展性明顯更高,使用上也更加便利,因此我才特別開設這個單元來介紹 Laravel。

參考資料

  1. https://laravel.com/
  2. https://zh.wikipedia.org/zh-tw/Laravel
  3. https://laravelshift.com/
  4. https://docfunc.com/posts/87/使用-laravel-團隊的-coding-style簡單介紹-laravel-pint-post
  5. https://www.explainthis.io/zh-hant/swe/mvc
  6. https://laravel.com/docs/11.x/middleware#excluding-middleware
  7. https://ithelp.ithome.com.tw/articles/10268778?sc=rss.iron
  8. https://ithelp.ithome.com.tw/articles/10222395
留言
avatar-img
留言分享你的想法!
旅人小萌-avatar-img
2025/02/23
謝謝您的分享❤️
avatar-img
林柏宇的沙龍
2會員
52內容數
test
林柏宇的沙龍的其他內容
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/27
JWT(JSON Web Token)是基於 JSON 格式的開放標準,主要用於身份驗證與權限確認。本文介紹了JWT的基本結構,並闡述其特點,如降低資料庫壓力、靈活性及無狀態性。JWT 特別適用於分佈式系統。本篇將協助讀者深入理解 JWT 的重要性與實際應用。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/20
本文介紹了容器的基本概念、組成部分以及其在應用開發中的重要性,特別是對初階和高階工程師的影響。透過深入探討容器的優點,以及Docker、Kubernetes和ArgoCD等相關技術,幫助讀者理解容器化的應用與管理,進而簡化開發過程並提高效率。適合對容器技術感興趣的開發者從零開始學習與掌握。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
2025/04/13
本文探討自動化測試的核心理念與實際應用,涵蓋如何模擬運行環境、確保程式碼在各種情境下的穩定性,以及進行錯誤處理的方法。文中指出自動化測試的各種優點,並提到設計測試的注意事項。透過使用相關工具和方法,讀者可以有效進行功能測試,並掌握相關技巧以應對常見問題,讓開發過程更為順利。
Thumbnail
看更多
你可能也想看
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
CodeIgniter 3 和 Laravel 是兩種不同的 PHP 框架,各有其特點和適用場景。CodeIgniter 3 是一個輕量級框架,Laravel 是一個功能強大的現代 PHP 框架,同樣都有Models的它們有什麼樣的差別呢?
Thumbnail
CodeIgniter 3 和 Laravel 是兩種不同的 PHP 框架,各有其特點和適用場景。CodeIgniter 3 是一個輕量級框架,Laravel 是一個功能強大的現代 PHP 框架,同樣都有Models的它們有什麼樣的差別呢?
Thumbnail
在本章節中,我們探討了 PHP 中如何引用和管理套件。學習了如何使用 Composer 來安裝第三方套件,以及如何引用自定義模組。此外,我們還介紹了如何創建和使用自定義套件,並列舉了一些在 PHP 社群中常見且廣泛使用的套件和庫。通過掌握這些知識,開發者可以更有效地管理和利用各種資源。
Thumbnail
在本章節中,我們探討了 PHP 中如何引用和管理套件。學習了如何使用 Composer 來安裝第三方套件,以及如何引用自定義模組。此外,我們還介紹了如何創建和使用自定義套件,並列舉了一些在 PHP 社群中常見且廣泛使用的套件和庫。通過掌握這些知識,開發者可以更有效地管理和利用各種資源。
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
這一章節旨在介紹 PHP 中的物件導向編程(OOP)概念。通過詳細講解類別、建構子、訪問修飾符(公開、私有、受保護)、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda 表達式、泛型和反射等概念,使讀者能夠理解和應用這些 OOP 技術來編寫更具結構性和可維護性的 PHP 代碼。
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
※ 原本狀態:伺服器渲染 這是 MVC 架構下的 request / response 示意圖,在這張圖呈現的架構裡,畫面和資料都由同一個架構處理。 伺服器渲染流程: 瀏覽器針對特定網址送出請求。 路由器解析請求後,轉接給對應的 controller。 controller 按照要求,透過
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
在本節中,我們介紹了PHP的基本語法,包括如何在HTML中嵌入PHP代碼,PHP腳本的執行順序,以及多種註解方式。我們還學習了如何定義和使用變數,包括單個變數和多個變數的賦值方法。這些基礎知識將幫助你開始使用PHP進行Web開發。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
這個章節介紹了PHP的基本特性和應用領域,並且列舉了使用PHP的知名公司和網站。了解PHP的簡單易學、跨平台、嵌入HTML等特性,以及PHP在動態網站、電子商務、內容管理系統、社交媒體平台、數據庫管理和API開發中的應用。
Thumbnail
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
Thumbnail
Composer是PHP的軟體套件管理系統,它提供用於管理PHP軟體和依賴庫關係的標準格式。通常以專案為單位進行管理,會在專案根目錄底下(預設是vendor)安裝套件,除此外可以安裝全局套件。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News