Files

1.1 KiB

paths
paths
**/*.php
**/composer.json

PHP 设计模式

本文档在 common/patterns.md 的基础上,补充了 PHP 相关的内容。

精炼控制器,明确服务

  • 保持控制器专注于传输层:认证、验证、序列化、状态码。
  • 将业务规则移至应用/领域服务中,这些服务无需 HTTP 引导即可轻松测试。

DTO 与值对象

  • 对于请求、命令和外部 API 负载,用 DTO 替代结构复杂的关联数组。
  • 对于货币、标识符、日期范围和其他受约束的概念,使用值对象。

依赖注入

  • 依赖于接口或精简的服务契约,而非框架全局变量。
  • 通过构造函数传递协作者,这样服务就无需依赖服务定位器查找,易于测试。

边界

  • 当模型层职责超出持久化时,应将 ORM 模型与领域决策隔离。
  • 将第三方 SDK 封装在小型的适配器之后,使代码库的其余部分依赖于你的契约,而非它们的。

参考

参见技能:api-design 了解端点约定和响应格式指导。 参见技能:laravel-patterns 了解 Laravel 特定架构指导。