ModuCore 實戰:為 Laravel 開發者設計的模組化、高效能 API 後端入門 (含 RBAC, Docker, CI/CD)
哈囉,各位對 Laravel 和後端開發充滿熱情的夥伴們!你是不是也曾經為了建置一個功能複雜、高效能、還要好維護的 API 後端而感到頭痛呢?或是當專案規模越來越大時,程式碼像義大利麵一樣糾結,讓你想哭卻哭不出來?
別擔心!今天,我要帶大家認識一個超實用的 Laravel 後端框架——ModuCore。它就像是一個已經幫你把地基打好、隔間分好、水電管線也拉得差不多的「預售屋」,讓你可以在上面快速蓋出自己的「夢想大樓」!
ModuCore 致力於解決中大型 API 平台開發中的痛點,像是程式碼難以管理、權限控制複雜、效能瓶頸,以及部署流程麻煩等等。透過模組化、內建 RBAC、整合高性能工具和 CI/CD,它能讓你更專注在業務邏輯本身,而不是被基礎架構搞得焦頭爛額。
您可以透過以下 GitHub 連結檢閱本專案的原始碼:https://github.com/BpsEason/smart-realestate-system.git
這篇文章將會用最輕鬆的方式,一步步帶你了解 ModuCore 的核心概念,從安裝到實際運作,讓你對它有更全面的認識!
🚀 什麼是 ModuCore?它為什麼能幫到你?
想像一下,你要蓋一棟超級市場,裡面有不同的部門:生鮮區、日用品區、收銀台等等。如果所有東西都混在一起,那管理起來肯定是一團糟。ModuCore 就是用「模組化」的概念來設計你的後端專案,把不同的「部門」分開來管理。
ModuCore 的主要特色和它能解決的問題:
模組化架構 (Modular Architecture):讓程式碼整潔有序!
問題: 傳統 Laravel 專案,所有程式碼都放在
app/
目錄下,隨著功能增加,檔案會越來越多,找起來費勁,維護起來也容易出錯。解決: ModuCore 把不同的業務功能(例如使用者管理、金流處理、簡訊通知)獨立成一個個的「模組」,每個模組都有自己的專屬資料夾,裡面放著自己的控制器、服務、模型、路由等等。這樣每個模組都像一個小積木,可以獨立開發、測試,未來要擴充或替換都超方便!
RBAC 權限控管 (Role-Based Access Control):誰能做什麼,清清楚楚!
問題: 不同的使用者在系統裡有不同的權限,例如管理員、編輯、一般會員,如果手動管理這些權限,簡直是場惡夢。
解決: ModuCore 內建了 RBAC。它把權限分成「角色」和「權限」兩種,你可以設定「管理員」這個角色擁有所有權限,「編輯者」只能編輯文章等等。這樣你只需要把角色賦予給使用者,就能輕鬆管理權限,安全又省事!
高效能部署 (High Performance Deployment):讓你的 API 飛起來!
問題: 隨著用戶量增加,API 服務可能會變慢,因為每次請求都得重新啟動整個應用程式,很耗資源。
解決: ModuCore 整合了 Laravel Octane (Swoole) 和 Redis。
Octane 讓 Laravel 應用程式能「常駐記憶體」運行,就像把常用的工具一直放在手邊,不用每次都從工具箱裡拿出來,大大減少了每次請求的啟動時間,提升響應速度和吞吐量。
Redis 則是用來做快取和隊列,進一步分擔資料庫壓力,讓整個系統更快、更順暢。
CI/CD 自動化 (CI/CD Automation):告別手動部署的惡夢!
問題: 程式碼寫完,要手動測試、打包、部署,過程繁瑣又容易出錯,特別是團隊協作時。
解決: 它預設包含了 GitHub Actions 的 CI/CD 設定。你只要把程式碼推送到指定分支,它就會自動幫你執行程式碼檢查、跑測試、打包 Docker 映像,然後部署到伺服器。這就像你有一個自動化的生產線,大大提升了開發效率和部署的可靠性。
完整 API 文件 (Comprehensive API Documentation):前後端溝通零障礙!
問題: 前後端工程師在對接 API 時,如果沒有清晰的文件,常常會遇到接口不對、參數錯誤等問題,導致溝通成本很高。
解決: ModuCore 整合了 Swagger/OpenAPI。它可以自動根據你的程式碼註解生成詳細的 API 文件,讓前後端開發者一目瞭然,大大提升協作效率。
總之,ModuCore 就是一個專為「懶人」和「追求效率」的開發者打造的框架,讓你告別那些重複又耗時的基礎設定,專注在實現核心業務價值!
🏡 專案架構:ModuCore 內部大揭秘
了解 ModuCore 的魅力後,我們來看看它的「內部結構」是怎麼設計的。它把 Laravel 專案的各個部分,以更清晰、模組化的方式組織起來,就像一棟設計精良的大樓,每個樓層和房間都有它的功能。
整合後的專案結構大概是這樣:
your-laravel-project/
├── app/
│ ├── Console/Commands/ # 自定義 Artisan 命令(例如 `make:module`)
│ ├── Core/Models/ # RBAC 核心模型(Role、Permission、UserRole)
│ ├── Http/Middleware/ # 中介層(API Key、權限檢查、速率限制)
│ ├── Models/ # Laravel 基礎模型(例如 `User.php`)
│ └── Modules/ # 模組化結構的核心!
│ ├── User/ # 使用者模組
│ │ ├── Controllers/ # 處理使用者相關請求
│ │ ├── Services/ # 使用者業務邏輯
│ │ ├── Contracts/ # 定義使用者服務介面
│ │ ├── Models/ # 模組專屬模型(如果需要擴展)
│ │ └── Providers/ # 模組服務提供者
│ ├── Payment/ # 金流模組(ECPay)
│ │ ├── Contracts/
│ │ ├── Controllers/
│ │ ├── Services/
│ │ └── Providers/
│ ├── Sms/ # 簡訊模組(Twilio)
│ │ ├── Contracts/
│ │ ├── Controllers/
│ │ ├── Services/
│ │ └── Providers/
│ └── Rbac/ # 角色權限管理模組
│ └── Controllers/ # 角色與權限的 API 處理
├── config/ # 配置檔案(modules.php、octane.php 等)
├── database/ # 資料庫遷移 (migrations) 和填充 (seeders)
├── routes/ # 主要路由檔案(api.php, web.php)
├── .github/workflows/ # CI/CD 配置(deploy.yml)
├── docker/ # Docker 配置 (nginx, supervisor, php-fpm)
├── docker-compose.yml # Docker Compose 開發環境設定
├── docker-compose.prod.yml # Docker Compose 生產環境設定
├── tests/ # 測試檔案(單元測試、功能測試、壓力測試)
└── ... 其他 Laravel 核心檔案 ...
架構圖解:服務互動示意
這張圖能更直觀地展示 ModuCore 裡各個服務和組件是怎麼互相合作的:
graph TD
A[Client (前端)] -->|HTTP 請求| B[Laravel API]
B -->|路由分發 (Routing)| C[使用者模組 (User Module)]
B -->|路由分發| D[金流模組 (Payment Module)]
B -->|路由分發| E[簡訊模組 (Sms Module)]
B -->|路由分發| F[RBAC 模組 (Rbac Module)]
B -->|中介層 (Middleware)| G[API Key 驗證]
B -->|中介層| H[權限檢查 (CheckPermission)]
B -->|中介層| I[速率限制 (RateLimit)]
B -->|快取/隊列| J[Redis (高性能存儲)]
B -->|資料庫操作| K[MySQL (數據持久化)]
D -->|金流 SDK| L[綠界 ECPay 服務]
E -->|簡訊 SDK| M[Twilio 服務]
B -->|常駐運行| N[Laravel Octane (Swoole 加速)]
F -->|檢查權限| H
從這張圖可以看出:
Client (前端) 發送 HTTP 請求給 Laravel API。
Laravel API 會先經過一系列的中介層 (Middleware) 檢查,例如 API Key 驗證、權限檢查、速率限制,確保請求合法且符合規範。
請求接著會被路由到對應的模組,例如使用者相關的請求會到 User Module 處理。
模組內部可能會調用 Redis 進行快取讀寫或處理隊列任務,也會與 MySQL 進行資料庫操作。
金流和簡訊模組會進一步透過對應的 SDK 與外部服務(如 ECPay 或 Twilio)溝通。
最重要的是,整個 Laravel API 是運行在 Laravel Octane 之上,透過 Swoole 的能力實現高性能。
這樣的架構讓每個部分各司其職,協同運作,共同提供一個穩定、高效的 API 服務。
🛠️ 環境要求:開始搭建前需要準備什麼?
在我們開始動手搭建 ModuCore 專案之前,請確保你的開發環境已經準備就緒。這就像你要蓋房子,得先準備好鋼筋水泥、工具一樣!
你需要準備以下這些工具和軟體:
PHP 8.2 或以上版本: 這是 Laravel 的核心,請確保你的 PHP 版本符合要求。
Composer: PHP 的套件管理工具,用來安裝 Laravel 框架和各種依賴。
Docker (含 Docker Compose): 強烈推薦!它能幫助我們快速搭建開發環境,避免各種環境配置問題。
Git: 版本控制工具,用來拉取程式碼。
網路連線: 廢話不多說,你懂的!
準備好了嗎?那就讓我們開始吧!
🏁 安裝步驟:手把手教你搭建 ModuCore 專案
ModuCore 是一個高度整合的 Laravel 後端框架。由於您的 GitHub 倉庫 https://github.com/BpsEason/ModuCore.git
中只包含核心代碼,因此我們需要透過以下手動步驟,從頭開始建立一個 Laravel 專案,然後將 ModuCore 的核心組件複製到新專案中。
步驟 1:初始化 Laravel 專案
首先,我們需要使用 Composer 建立一個全新的 Laravel 專案。
創建一個新的資料夾,作為你專案的根目錄,然後進入這個資料夾。這裡我們以
my-moducore-project
為例:mkdir my-moducore-project cd my-moducore-project
使用 Composer 建立 Laravel 專案:
composer create-project laravel/laravel backend-laravel
這會在你當前目錄下創建一個名為
backend-laravel
的資料夾,裡面包含了完整的 Laravel 應用程式骨架。
步驟 2:從 GitHub 倉庫複製 ModuCore 核心代碼並整合
現在,我們將從您的 ModuCore GitHub 倉庫複製核心組件,並將它們整合到剛才建立的 backend-laravel
專案中。
克隆您的 ModuCore 倉庫: 在
my-moducore-project
目錄下(與backend-laravel
同級),克隆您的倉庫。git clone https://github.com/BpsEason/ModuCore.git moducore-core-temp
這會創建一個名為
moducore-core-temp
的臨時資料夾,裡面包含了 ModuCore 的核心檔案。複製核心程式碼: 現在,將
moducore-core-temp
中的核心檔案和目錄複製到你的backend-laravel
專案中。cp -r moducore-core-temp/app/* backend-laravel/app/ cp -r moducore-core-temp/config/* backend-laravel/config/ cp -r moducore-core-temp/database/* backend-laravel/database/ cp -r moducore-core-temp/.github backend-laravel/ # 複製 CI/CD 配置 cp -r moducore-core-temp/docker backend-laravel/ # 複製 Docker 配置 cp moducore-core-temp/docker-compose.yml . # 複製到專案根目錄 cp moducore-core-temp/docker-compose.prod.yml . # 複製到專案根目錄 cp -r moducore-core-temp/tests backend-laravel/ # 複製測試檔案 cp moducore-core-temp/.env.example backend-laravel/ # 複製 .env.example
重要提示: 由於您的
moducore-core-temp
倉庫中可能沒有docker-compose.yml
等文件,這裡假設它們是直接在您提供的倉庫根目錄下。如果它們位於moducore-core-temp/backend-laravel/
內部,則路徑需要調整為moducore-core-temp/backend-laravel/docker-compose.yml
等。請根據您實際的倉庫結構進行調整。複製完成後,你可以刪除臨時的
moducore-core-temp
資料夾:rm -rf moducore-core-temp
。
步驟 3:更新 Composer 依賴
ModuCore 依賴於一些額外的 Composer 套件,例如 Laravel Octane、Sanctum、L5-Swagger 等。我們需要將這些依賴加入到 backend-laravel/composer.json
中,然後運行 composer update
。
進入
backend-laravel
目錄:cd backend-laravel
編輯
composer.json
: 打開backend-laravel/composer.json
檔案,在require
部分添加以下依賴:{ "require": { "php": "^8.2", "guzzlehttp/guzzle": "^7.8", "laravel/framework": "^10.0", "laravel/sanctum": "^3.3", "laravel/tinker": "^2.8", "darkaonline/l5-swagger": "^8.0", "laravel/octane": "^1.2", "predis/predis": "^2.0", "twilio/sdk": "^7.0" } }
注意: 確保
php
和laravel/framework
的版本與您當前環境相符。predis/predis
和twilio/sdk
是用於 Redis 和 Twilio 服務的,如果您的 ModuCore 實現有使用,則需要添加。
運行 Composer 更新:
composer update
這會安裝所有必要的 PHP 套件。
步驟 4:配置環境變數 (.env
)
Laravel 應用程式的運行需要正確的環境變數。
複製
.env.example
為.env
:cp .env.example .env
編輯
.env
檔案:這一步非常重要!你需要根據你的實際情況修改一些變數。APP_KEY
:這是 Laravel 的應用程式密鑰,很重要!請執行以下命令生成並替換.env
中的APP_KEY
:php artisan key:generate
MODUCORE_API_KEY
:這是你的後端 API 的應用程式級別金鑰。你可以隨便設置一串複雜的字串,例如your_super_secret_moducore_api_key_12345
。DB_DATABASE
,DB_USERNAME
,DB_PASSWORD
:這些是 MySQL 資料庫的連接資訊,通常在docker-compose.yml
中定義。請確保.env
中的值與docker-compose.yml
中的環境變數一致(預設為moducore_db
,moducore_user
,moducore_secret
)。REDIS_HOST
,REDIS_PASSWORD
,REDIS_PORT
:Redis 的連接資訊。如果 Redis 沒有密碼,REDIS_PASSWORD
可以保持null
。ECPAY_*
和TWILIO_*
:這些是金流和簡訊服務的憑證,如果你不需要這些功能,可以暫時留空。如果你要使用,需要去綠界和 Twilio 註冊服務並獲取這些金鑰。AI_SERVICE_URL
和AI_SERVICE_INTERNAL_API_KEY
:這是如果你的後端需要調用 AI 服務的配置,目前可以先不理會。OCTANE_SERVER
,OCTANE_PORT
,OCTANE_WORKERS
,OCTANE_MAX_REQUESTS
:Octane 的配置,通常可以保留預設。
步驟 5:建構並啟動 Docker 容器
現在,我們可以使用 Docker Compose 來啟動所有服務,包括 Laravel 後端、MySQL 資料庫和 Redis。
回到專案的根目錄(即
my-moducore-project
,與backend-laravel
和docker-compose.yml
同級)。cd .. # 如果你還在 backend-laravel 目錄中
建構並啟動 Docker Compose 服務:
docker-compose up --build -d
up
:啟動服務。--build
:強制重新建構 Docker 映像檔,確保使用了最新的程式碼。-d
:讓服務在後台運行 (detached mode)。
這個命令會下載所需的 Docker 映像檔(MySQL, Redis, PHP),建構你的 Laravel 應用程式映像檔,並啟動所有服務。這個過程可能需要一些時間,特別是第一次運行時。
你可以用 docker-compose ps
命令來查看所有服務的運行狀態。當 backend
, db
, redis
的狀態都顯示為 healthy
時,表示服務已經正常啟動。
步驟 6:執行 Laravel 資料庫遷移與填充
當 Docker 服務都運行起來後,我們需要進入 backend
容器內部,執行 Laravel 的資料庫遷移和填充,創建實際的資料表和初始數據(例如使用者、角色和權限)。
docker-compose exec backend php artisan migrate --seed
docker-compose exec backend
:表示進入backend
這個服務的容器內部執行命令。php artisan migrate --seed
:Laravel 的 Artisan 命令,migrate
會運行所有未執行的遷移檔來創建資料表,--seed
會運行DatabaseSeeder
來填充初始數據。
這一步會創建 users
, roles
, permissions
, user_roles
, role_permissions
等資料表,並初始化一個管理員帳號 (admin@example.com
/ password
) 和一些預設的角色權限。
步驟 7:生成 Laravel Octane 配置和 Swagger 文件
這一步是為了讓 Laravel 應用程式在 Octane 模式下運行,並生成方便的前後端協作的 API 文件。
docker-compose exec backend php artisan octane:install --server=swoole
docker-compose exec backend php artisan vendor:publish --provider="L5Swagger\L5SwaggerServiceProvider"
docker-compose exec backend php artisan l5-swagger:generate
php artisan octane:install --server=swoole
:安裝並配置 Laravel Octane 使用 Swoole 驅動。php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"
:發布 L5-Swagger 的配置檔和視圖檔。php artisan l5_swagger:generate
:根據你的控制器註解自動生成 Swagger/OpenAPI 文件。
步驟 8:訪問你的後端服務!
大功告成!現在你的 ModuCore 後端服務應該已經運行起來了。
後端服務主頁: 打開你的瀏覽器,訪問 http://localhost:8000。
你應該會看到一個簡單的歡迎訊息:「ModuCore Backend is running! Access /api for API endpoints or /api/documentation for Swagger UI.」。
Swagger API 文件: 訪問 http://localhost:8000/api/documentation。
這裡會呈現所有自動生成的 API 文件,你可以看到每個接口的詳細資訊、參數、響應範例等等,非常方便!
恭喜你!你已經成功搭建了一個基於 ModuCore 的高性能模組化 Laravel 後端!
✨ 核心功能詳解: ModuCore 的魔法是什麼?
現在我們已經把專案跑起來了,接著深入了解 ModuCore 的幾個關鍵魔法是如何運作的,讓你對它有更深的體會。
1. 模組化架構:化繁為簡的秘密
ModuCore 最核心的理念就是模組化。想像一下,你的後端不再是一個巨大的鐵球,而是一個個可以獨立插拔的樂高積木!
實現方式:
app/Modules/
目錄: 這是所有模組的家。每個子資料夾(如User
,Payment
,Sms
,Rbac
)就是一個獨立的模組。每個模組都是一個迷你應用: 每個模組資料夾裡,都有自己的
Controllers
(控制器)、Services
(服務層)、Models
(模型)、Contracts
(介面)、Providers
(服務提供者) 和routes.php
(路由檔案)。這就像每個模層都有自己的專屬團隊和工作流程。make:module
命令: 這是 ModuCore 的一個超級工具!你只要執行:docker-compose exec backend php artisan make:module YourNewModule --all
它就會自動在
app/Modules/
下幫你建立一個全新的模組YourNewModule
,並填充好這些基本的檔案骨架,省去了你手動創建的麻煩!
為什麼這麼做?
高內聚低耦合: 每個模組只專注於自己的業務,模組之間依賴性低。
易於維護和擴展: 當你需要新增功能或修改某個功能時,你只需要專注於對應的模組,不會影響到其他部分。
團隊協作更順暢: 不同的開發者可以同時開發不同的模組,減少程式碼衝突。
2. RBAC 權限控管:安全又靈活的門禁系統
RBAC (Role-Based Access Control) 是企業級應用中不可或缺的權限管理方式。ModuCore 已經幫你打好了基礎!
核心概念:
權限 (Permission): 最細微的操作,例如
view-users
(查看使用者列表)、create-product
(創建商品)。角色 (Role): 一組權限的集合,例如
admin
(管理員擁有所有權限)、editor
(編輯者擁有編輯相關權限)。使用者 (User): 系統的使用者,可以被賦予一個或多個角色。
運作原理:
資料庫設計:
roles
表儲存角色,permissions
表儲存權限。user_roles
(使用者-角色) 和role_permissions
(角色-權限) 兩個中間表建立了它們之間的關係。CheckPermission
中介層: 這是關鍵!它位於app/Http/Middleware/CheckPermission.php
。當你的 API 路由需要權限驗證時,你可以在路由上加上這個中介層,並指定所需的權限,例如:Route::get('/users', [UserController::class, 'index']) ->middleware('permission:view-users');
當請求來到這個路由時,
CheckPermission
中介層會自動檢查當前登入的使用者是否有view-users
這個權限。如果沒有,就會返回403 Forbidden
。快取優化: 為了讓權限檢查更快,ModuCore 會利用 Redis 快取使用者的權限資訊,避免每次請求都查詢資料庫。
這套機制讓權限管理變得非常高效和靈活,你不需要修改程式碼,只需要調整資料庫中的角色和權限配置,就能輕鬆調整用戶的存取權限。
3. 高效能魔術:Laravel Octane 與 Redis
如果你希望你的 API 能夠應付大量請求,那麼 Octane 和 Redis 就是 ModuCore 的加速器!
Laravel Octane (搭配 Swoole):
為什麼快? 傳統 PHP 每次請求都像從零開始蓋一棟房子,Octane 就像只蓋一次地基和框架,之後每次來請求都是在現成的框架上裝修,快很多!它讓 Laravel 應用程式常駐記憶體,省去了重複啟動的開銷。
配置: 在
config/octane.php
裡,你可以調整workers
(工作進程數) 和max_requests
(每個工作進程處理多少請求後重啟一次) 來優化性能。
Redis:
角色: 除了作為 Octane 的底層驅動外,Redis 在 ModuCore 中主要扮演了「高速快取」和「隊列處理」的角色。
快取: 像 RBAC 的權限、常用數據的查詢結果都可以丟到 Redis 裡,下次再要用就不用再去資料庫,直接從記憶體拿,速度飛快。
隊列: 對於一些耗時的操作(例如發送郵件、生成報告),可以把它們丟到隊列裡,後端會異步處理,不會阻塞當前請求,提升用戶體驗。
配置: 在
.env
中設置CACHE_DRIVER=redis
和QUEUE_CONNECTION=redis
即可啟用。
4. CI/CD 自動化:順暢開發與部署的基石
CI/CD 就像是給你的專案裝上了自動導航系統,讓程式碼從開發到上線一路暢通。ModuCore 預設包含了基於 GitHub Actions 的 CI/CD 配置。
文件位置:
/.github/workflows/deploy.yml
核心流程:
程式碼推送: 當你把程式碼推送到
main
或develop
分支時,CI/CD 流程自動啟動。自動化測試: 系統會自動拉取你的程式碼,安裝依賴,然後運行所有單元測試和功能測試。如果測試失敗,它會立即通知你,避免錯誤程式碼進入生產環境。
Docker 映像建構: 測試通過後,它會根據你的
Dockerfile
把後端應用程式打包成一個 Docker 映像檔。推送到容器倉庫: 將打包好的 Docker 映像檔推送到 Docker Hub 或 GitHub Container Registry 等倉庫。
自動部署: 透過 SSH 連接到你的伺服器,拉取最新的 Docker 映像檔,然後使用
docker-compose
自動啟動新服務,並執行資料庫遷移和 Laravel 優化。
這套流程大大減少了手動部署的錯誤,提升了團隊協作效率,讓你寫完程式碼後可以更放心地交付!
5. API 文件自動生成:前後端溝通的橋樑
清晰的 API 文件是前後端高效協作的基礎。ModuCore 透過整合 L5-Swagger 解決了這個問題。
如何生成?
你只需要在你的 Laravel 控制器方法上方,用特定的 PHP DocBlock (PHPDoc) 註解來描述你的 API 接口(例如參數、響應、安全驗證等)。
運行
php artisan l5_swagger:generate
命令,L5-Swagger 就會自動掃描你的程式碼,生成一份標準的 OpenAPI (Swagger) JSON/YAML 文件。
如何查看?
一旦生成,你就可以透過瀏覽器訪問
http://localhost:8000/api/documentation
來查看一個美觀互動的 Swagger UI 介面。前後端開發者可以直接在這個介面上查看所有 API 接口的詳細資訊,甚至可以直接發送測試請求,大大減少了溝通成本。
🧪 測試範例:確保你的程式碼滴水不漏
寫程式碼不測試就像閉著眼睛開車!ModuCore 專案已經為你準備了一些測試的基礎,讓你寫出的程式碼更可靠。
1. 運行 Laravel 內建測試
Laravel 有非常完善的測試框架,ModuCore 模組也包含了測試範例。
運行所有測試:
docker-compose exec backend php artisan test
這個命令會運行
backend-laravel/tests/
目錄下的所有測試檔案。你會看到測試的結果,哪些通過了,哪些失敗了。模組測試: 你可以在
backend-laravel/tests/Feature/
下找到像UserModuleTest.php
這樣的檔案。這些是針對特定模組的功能測試。它們會模擬 HTTP 請求,檢查你的 API 接口是否正常工作,例如創建使用者、獲取使用者列表等等。
2. 壓力測試 (Load Testing)
了解你的 API 在高併發下的表現如何,壓力測試是個好方法。ModuCore 包含了 Apache Bench (ab) 的簡單壓力測試腳本。
前提: 你的本機電腦需要安裝
apache2-utils
套件,裡面包含了ab
命令。Ubuntu/Debian:
sudo apt install apache2-utils
macOS (使用 Homebrew):
brew install apache-bench
運行壓力測試:
進入
tests
目錄:cd tests
執行腳本:
./load_test.sh
這個腳本預設會對
http://localhost:8000/api/users
發送 1000 個請求,併發 100 個。注意: 運行壓力測試前,請確保你的
backend
服務已經在 Docker 中運行,並且/api/users
接口可以正常訪問(可能需要登入,如果是受保護的路由)。
透過這些測試,你可以確保你的 ModuCore 專案不僅功能正確,而且在高負載下也能表現良好!
🎉 恭喜你!
到這裡,你已經成功了解並初步搭建了一個基於 ModuCore 的 Laravel API 後端。
ModuCore 提供的不僅僅是一堆程式碼,更是一種模組化、高效能、安全且自動化的開發思維。它讓你從繁瑣的基礎建設中解放出來,可以更專注於創造獨特的業務邏輯和解決實際問題。
希望這篇文章能幫助你打開 Laravel 後端開發的新世界,讓你未來的開發之路更加順暢、高效!如果你在實際操作中遇到任何問題,別忘了查閱官方文件,或者在相關社群尋求幫助。
祝你開發愉快!😊
沒有留言:
張貼留言