DDD限制了上下文和模块与Symfony2捆绑

时间:2014-05-19 11:24:43

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

我正在尝试从域驱动设计中实现几个概念,例如Bounded Contexts和模块。

我正在研究Symfony2项目,我想使用DDD方法。 Symfony2有捆绑包,每个捆绑包有几个用于服务,实体,控制器,视图等的文件夹。

我希望我的应用程序有一个像这样的分层方法: enter image description here

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

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

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

1 个答案:

答案 0 :(得分:1)

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

捆绑包基本上只需添加:

  • 您的域图层周围的依赖注入
  • 添加持久层(Doctrine)
  • 添加HTTP图层
  • 构造
  • ...

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

  • SRC
    • 域名(与域名相关)
    • DomainBundle(将域集成到Symfony中 - DI,配置,具体存储库类,实体映射......)
    • WebBundle(控制器,表单,模板)

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