PHP领域驱动设计
400 页
Chinese
PDF
4.5

PHP领域驱动设计

PHP领域驱动设计

作者:

年份:

简介:

引言

《Domain-Driven Design in PHP》一书(作者:Carlos Buenosvinos、Christian Soronellas、Keyvan Akbary,2017年出版,400页)不仅仅是一本普通的PHP指南,更是对领域驱动设计(DDD)方法论在PHP Web开发中的深入实践。与Eric Evans或Vaughn Vernon的经典著作不同,后者以抽象术语描述DDD,而本书提供了具体、可直接使用的PHP模式和代码示例。它面向已掌握PHP基础并希望迈向更高层次——构建复杂、可维护且可扩展的业务应用程序——的开发者。

本书内容是什么?

本书循序渐进地揭示了DDD的所有关键概念:从基本构建块(实体、值对象、聚合、仓储、领域服务)到高级技术,如CQRS(命令查询职责分离)和事件溯源。每一章不仅包含理论解释,还提供了可直接应用于实际项目的PHP实践示例。特别关注代码组织、与Doctrine ORM的集成、与Symfony和Laravel的整合,以及领域逻辑的测试。

本书主要主题:

  • DDD构建块:实体、值对象、聚合、仓储、工厂、领域事件。
  • 领域建模:如何识别限界上下文(Bounded Context)并构建通用语言(Ubiquitous Language)。
  • 基础设施:使用Doctrine实现仓储、事务处理、工作单元(Unit of Work)。
  • 高级模式:CQRS、事件溯源、应用服务、领域服务。
  • 测试:领域对象的单元测试、仓储的集成测试、命令和事件的测试。
  • 框架集成:Symfony和Laravel的示例、依赖注入配置、设置。

本书适合谁?

本书对以下人群有益:

  • 中高级PHP开发者,希望掌握DDD并在项目中应用。
  • 架构师和技术负责人,设计复杂业务系统并寻求摆脱“大泥球”(Big Ball of Mud)的方法。
  • 从过程式或MVC风格转向更有意义的领域设计的开发者。
  • 已阅读过Evans或Vernon著作的人,希望了解这些思想如何借助现代工具(Composer、Doctrine、Symfony)在PHP中实现。

读者将学到什么?

阅读本书后,读者将能够:

  • 清晰区分实体和值对象,并理解何时使用它们。
  • 设计具有正确一致性边界的聚合。
  • 实现隐藏数据存储细节的仓储。
  • 应用领域事件实现模块间的松散耦合。
  • 引入CQRS分离命令和查询,简化扩展。
  • 使用事件溯源实现状态变更的完整审计。
  • 编写专门验证业务规则而非基础设施的测试。
  • 将DDD方法与流行的PHP框架集成。

本书优势

本书的主要优点在于其实用性。作者不仅复述理论,而是展示如何实际编写代码。所有示例均适用于现代PHP版本(7.x),使用Composer自动加载、类型提示、trait等语言特性。本书包含大量可直接复制并适配到项目的代码清单。特别值得一提的是关于CQRS和事件溯源的章节——它们写得如此通俗易懂,即使是这些主题的新手也能理解。

推荐