用途
Laravel 开发模式(Laravel Development Patterns)是一套面向生产级 Laravel 应用的架构模式,目标是构建可扩展、可维护的应用。
适用场景包括:
- 构建 Laravel Web 应用或 API
- 组织控制器、服务与领域逻辑
- 处理 Eloquent 模型与关系
- 设计带资源与分页的 API
- 引入队列、事件、缓存与后台任务
主要能力
分层结构
围绕清晰边界组织应用:控制器 -> 服务/动作 -> 模型。推荐的项目结构包含 Actions(单一用途用例)、Console、Events、Exceptions、Http(Controllers、Middleware、Requests、Resources)、Jobs、Models、Policies、Providers、Services、Support 等目录,以及 config、database(factories、migrations、seeders)、resources(views、lang)、routes(api.php、web.php、console.php)。
控制器与服务/动作
保持控制器精简,编排逻辑放在服务中,单一用途逻辑放在动作中。示例中 CreateOrderAction 通过构造函数注入 OrderRepository,handle 方法接收 CreateOrderData 并返回 Order;OrdersController 注入 CreateOrderAction,在 store 方法中调用并返回 JSON 响应。
路由与控制器
优先使用路由模型绑定和资源控制器。示例使用 auth:sanctum 中间件分组并注册 apiResource。使用 scoped bindings 防止跨租户访问。嵌套路由时保持前缀与路径一致,避免双重嵌套(如 conversation 与 conversations),使用与绑定模型匹配的单一参数名(如 {conversation} 对应 Conversation)。若参数需解析为不同模型类,可定义显式绑定,使用 Route::bind() 或在模型上实现 resolveRouteBinding()。
服务容器绑定
在服务提供者中将接口绑定到实现,实现清晰的依赖装配。示例在 AppServiceProvider 的 register 方法中绑定 OrderRepository 到 EloquentOrderRepository。
Eloquent 模型模式
模型配置示例包含 HasFactory、fillable、casts(枚举与 datetime)、belongsTo 关系、scopeActive 局部作用域。支持自定义 Cast 与值对象(如枚举、Attribute 实现 Money 与分之间的转换)。使用 with() 预加载避免 N+1。复杂过滤可使用查询对象(ProjectQuery)。全局作用域与软删除可用于默认过滤与可恢复记录;同一过滤条件建议只使用全局作用域或命名作用域之一,除非有意分层。多步骤更新使用 DB::transaction。
迁移
文件名使用时间戳:YYYY_MM_DD_HHMMSS_create_users_table.php;迁移使用匿名类;表名默认 snake_case 且为复数。示例迁移创建 orders 表,包含 id、外键 customer_id(constrained、cascadeOnDelete)、status(带索引)、total_cents、timestamps。
表单请求与验证
验证放在表单请求中,并将输入转换为 DTO。示例 StoreOrderRequest 的 authorize 检查用户是否有创建 Order 的权限,rules 定义 customer_id、items 等规则,toDto 返回 CreateOrderData。
API 资源
使用资源与分页保持 API 响应一致。示例返回 success、data(ProjectResource::collection)、error、meta(page、per_page、total)。
事件、任务与队列
为副作用(邮件、分析)发出领域事件;使用队列任务处理慢操作(报表、导出、Webhook);优先使用幂等处理器并配置重试与退避。
缓存
缓存读密集端点与昂贵查询;在模型事件(created/updated/deleted)时失效缓存;缓存相关数据时使用标签以便失效。
配置与环境
密钥放在 .env,配置放在 config/*.php;使用按环境的配置覆盖,并在生产环境使用 config:cache。
使用方式
该技能以模式与代码示例的形式提供指导,涵盖项目结构、路由、控制器、模型、迁移、验证、API 资源、队列、事件、缓存与配置等主题。具体安装或调用方式暂未提供。
适用场景
适用于需要按生产级标准组织 Laravel 应用架构的开发者,尤其是涉及 API 设计、领域逻辑分层、性能优化(预加载、缓存、队列)与多租户访问控制的场景。
限制
资料未提供该技能的安装命令、运行环境要求、版本兼容性、收费或价格信息,也未提供效果或性能数据,这些内容暂未提供。