用途:这是一份 Laravel 控制器编写规范,用于约束 HTTP 层控制器的职责与结构,让控制器只承担 HTTP 适配职责,把领域逻辑放到 Action 中。
主要能力与规则:控制器只做类型提示注入依赖、通过 Form Request 校验、调用 Action、返回响应(Resource、重定向、视图);不应包含领域逻辑、直接执行数据库查询、做计算或处理复杂业务规则。命名使用复数资源名,如 CalendarsController;嵌套资源用父单数加子复数,如 CalendarEventsController,路由如 Route::resource('calendars.events', CalendarEventsController::class)。只使用 RESTful 方法:Web 用 index、create、store、show、edit、update、destroy,API 不用 create 和 edit。非 RESTful 动作提取为可调用控制器,例如 CancelOrderController 配合操作。Web 层位于 app/Http/Web/Controllers/ 与 routes/web.php,不版本化、可自由变更;公共 API 位于 app/Http/Api/V1/Controllers/ 与 routes/api/v1.php,需版本化并保持稳定契约。示例中 index 使用 OrderIndexQuery 查询对象,store 调用 CreateOrderAction 并借助 DTO 传输数据。
使用方式:按上述命名与目录组织控制器,为资源注册 Route::resource 或 Route::apiResource;筛选、排序与 include 使用 Query Objects 配合 Spatie Query Builder;授权可在方法内 $this->authorize('create', Order::class) 或路由 ->can(...);响应可用 JSON Resource、集合资源、201 Created、204 No Content 或重定向;路由模型绑定支持 {order} 与 {order:uuid}。
适用场景:Laravel 项目的 Web 层与公共 API 控制器组织、分层规范落地。
限制:资料未提供安装命令、收费或价格信息;具体依赖版本、完整目录约定之外的细节暂未提供。