【问题标题】:DDD bounded contexts and modules vs Symfony2 bundlesDDD 有界上下文和模块与 Symfony2 捆绑包
【发布时间】:2014-07-07 08:10:29
【问题描述】:

我正在尝试从域驱动设计中实现几个概念,例如限界上下文和模块。

我正在开发一个 Symfony2 项目,我想使用 DDD 方法来处理它。 Symfony2 有包,每个包都有几个文件夹,用于服务、实体、控制器、视图等。

我希望我的应用程序具有这样的分层方法:

这是一个带有层的单一有界上下文。

如何将有界上下文、层及其模块映射到 Symfony2 中的包?

注意:我知道 DDD 不仅仅是一个文件夹结构,但我想在这里解决这个特定问题。

【问题讨论】:

    标签: php oop symfony architecture domain-driven-design


    【解决方案1】:

    您可以(并且必须)编写不可知论的域层框架,以便您遵循 DDD 最佳实践并按照您喜欢的结构设置文件夹。一个好的框架不会用它自己的文件夹结构来限制你。 您可以将捆绑包视为您的域与 Symfony 的集成层。

    使用捆绑包基本上只需添加:

    • 你的领域层的依赖注入
    • 添加持久层(Doctrine)
    • 添加 HTTP 层
    • 配置
    • ...

    我有一个这样的基本文件夹结构:

      • 域(与域相关的所有内容)
      • DomainBundle(将域集成到 Symfony - DI、配置、具体存储库类、实体映射...)
      • WebBundle(控制器、表单、模板)

    因此,您不会将域逻辑放入包中。您只需使用它们在您的域周围添加框架逻辑。

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 2012-12-10
      • 2013-11-27
      • 2021-02-23
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      相关资源
      最近更新 更多