---
# System prepended metadata

title: Laravel 封裝業務邏輯
tags: [Laravel]

---

# Laravel 封裝業務邏輯

`$request` 不可出現在 Controller 和 Middleware 以外的地方，根據單一職責原則，獲取資料這個任務應該由 Controller 來完成；Service 模式將 PHP 的商業邏輯寫在對應責任的 Service 類別裡，解決 Controller 擁腫的問題。

若往後有其他 API 或者其他會使用到購物車功能的需求，可以直接使用 Service，程式碼可重用性大幅提升。再加上 Service 可以利用 Laravel 提供的依賴注入機制，大大提高了 Service 部分程式碼的可測試性，程式的健壯性越佳。

###### tags: `Laravel`