Laravel 开发模式
适用于可扩展、可维护应用的生产级 Laravel 架构模式。
适用场景
- 构建 Laravel Web 应用或 API
- 构建控制器、服务和领域逻辑
- 使用 Eloquent 模型和关系
- 使用资源和分页设计 API
- 添加队列、事件、缓存和后台任务
工作原理
- 围绕清晰的边界(控制器 -> 服务/操作 -> 模型)构建应用。
- 使用显式绑定和作用域绑定来保持路由可预测;同时仍强制执行授权以实现访问控制。
- 倾向于使用类型化模型、转换器和作用域来保持领域逻辑一致。
- 将 IO 密集型工作放在队列中,并缓存昂贵的读取操作。
- 将配置集中在
config/*中,并保持环境配置显式化。
示例
项目结构
使用具有清晰层级边界(HTTP、服务/操作、模型)的常规 Laravel 布局。
推荐布局
app/
├── Actions/ # 单一用途的用例
├── Console/
├── Events/
├── Exceptions/
├── Http/
│ ├── Controllers/
│ ├── Middleware/
│ ├── Requests/ # 表单请求验证
│ └── Resources/ # API 资源
├── Jobs/
├── Models/
├── Policies/
├── Providers/
├── Services/ # 协调领域服务
└── Support/
config/
database/
├── factories/
├── migrations/
└── seeders/
resources/
├── views/
└── lang/
routes/
├── api.php
├── web.php
└── console.php
控制器 -> 服务 -> 操作
保持控制器精简。将编排逻辑放在服务中,将单一职责逻辑放在操作中。
final class CreateOrderAction
{
public function __construct(private OrderRepository $orders) {}
public function handle(CreateOrderData $data): Order
{
return $this->orders->create($data);
}
}
final class OrdersController extends Controller
{
public function __…