Laravel
RoadMap
Documents
Security
https://www.laravel-enlightn.com/docs/getting-started/installation.html
composer require enlightn/enlightnpro
NativePHP Package
Serverless Laravel
- Vapor: https://vapor.laravel.com
- Bref: https://bref.sh/
Packages
- 翻譯相關:https://github.com/edulazaro/laratext
- 後台:https://filamentphp.com/docs/3.x/panels/getting-started
Question
一、Laravel 框架底層原理
- Laravel 的服務容器(Service Container)是什麼?它的用途為何?請舉例說明如何使用 bind、singleton。
- 請說明 Laravel 的服務提供者(Service Provider)在整個應用啟動流程中扮演的角色?何時需要自訂 ServiceProvider?
- Laravel 如何實作 Facade?底層實際是如何解決依賴的?
- Laravel 中的中介層(Middleware)是如何運作的?它在請求流程的哪個階段執行?
二、效能與最佳化
- 請說明 Laravel 的快取(Cache)系統的幾種常見應用方式(如 route、config、query)以及其使用時機與注意事項。
- Laravel 如何優化 Eloquent 查詢?請說明 eager loading 與 lazy loading 的差異與效能考量。
- 什麼是 N+1 問題?如何在 Laravel 裡避免它?
- Laravel 裡的 Task Scheduling 是如何設計的?有哪些實務應用場景?
三、安全性與權限
- Laravel 中 CSRF 是如何實作的?如何避免此類攻擊?
- Laravel 的認證與授權機制(如 Gate、Policy、Middleware)是如何運作的?請說明其差異與使用時機。
- 如何在 Laravel 中實作 API Token 驗證?請比較 Sanctum 與 Passport 的異同。
四、架構與設計
- 當 Laravel 專案愈來愈大時,如何進行模組化管理(如 Domain-Driven Design、Package、Module)?
- 請說明 Laravel 的事件(Event)與監聽器(Listener)機制,以及使用場景。
- Laravel 的 Job Queue 機制是怎麼運作的?請描述一次 dispatch 的完整流程。
- 請舉例說明如何使用 Laravel 的 Repository Pattern 進行資料存取層的封裝。
五、測試與 CI/CD
- Laravel 提供哪些測試方式(Feature / Unit)?如何選擇使用?
- 如何模擬外部 API 進行測試?你會用什麼技巧(如 Fake、Mock、Factory)?
- 如何使用 Laravel 的 artisan 指令來建立測試與執行測試?如何整合 CI/CD 工具(如 GitHub Actions)來跑測試流程?
六、實作題(Coding)
- 請寫一段 Laravel 的 Middleware,限制每分鐘最多 10 次請求,超過次數要回傳錯誤訊息。
- 請設計一個簡單的投票系統(Post 有多個選項,User 可對每個選項投一票),並用 Laravel Eloquent 設計資料表與關聯。
N+1 問題
當你查詢一組資料後,對每筆資料再個別查詢關聯資料時,會產生過多 SQL 查詢,導致效能變差。
$posts = Post::all();
foreach ($posts as $post) {
echo $post->user->name;
}
# 解法:Eager Loading
$posts = Post::with('user')->get();
foreach ($posts as $post) {
echo $post->user->name;
}
# 動態載入 load
$posts = Post::all();
$posts->load('user');