【问题标题】:Generally speaking, what is a Domain folder? What does it mean/contain?一般来说,什么是域文件夹?它是什么意思/包含什么?
【发布时间】:2020-04-17 23:07:37
【问题描述】:

最近我一直在研究很多不同的 php 框架和各种 php 包。每当我第一次查看项目时,例如上述框架或包,我都会尝试消化它的目录结构以了解其组织结构。我注意到经常有重复出现的主题,比如“app”文件夹、“tests”文件夹、“src”文件夹、“var”文件夹等等。通常我理解这些文件夹代表或意味着什么,但是最近我在项目目录中遇到了一个我不理解的文件夹:一个“域”文件夹。

域文件夹代表什么?其中包含哪些类型的逻辑或代码?它与实际域名有任何关系吗?

任何和所有输入将不胜感激。

编辑: 为了提供最终促使我提出这个问题的具体示例,我正在查看由 php“slim”框架生成的起始样板。可以使用php的工具composer生成这个项目,运行:

composer create-project slim/slim-skeleton [app-folder]

这里是a link github 上的 repo。在这个项目的“src”文件夹中,有一个“Domain”文件夹。至少对于这个特定的示例,域文件夹代表什么?

【问题讨论】:

  • 这个文件夹里有什么?
  • 这是无法回答的。它可能意味着各种各样的事情,具体取决于开发人员想要它意味着什么。我可以将文件夹命名为 cat 来指代用于连接的对象,但我也可以指的是我的宠物的图像。

标签: php design-patterns architecture frameworks


【解决方案1】:

“域”是 DDD(域驱动设计)架构中的主要术语。它有许多概念要学习,但总而言之,我们可以说域部分是应用程序逻辑的核心部分,它包含您的域模型及其服务,如工厂和模型验证。我建议您阅读此参考资料,它可以帮助您理解 DDD 概念。

https://martinfowler.com/tags/domain%20driven%20design.html

编辑: 在您提到的示例中,如您所见,域部分中有一个“用户”模型,其中有一些服务,例如其存储库的异常或接口。

【讨论】:

  • 谢谢。这正是我一直在寻找的。只是方向正确的一点。搜索“域文件夹”之类的东西让我在谷歌上无处可去。
  • 不客气,搜索“域”比“域文件夹”更正确,因为域是一个概念,而不仅仅是一个文件夹。正如我所说,最好阅读有关 DDD 的 Martin Fowler 文章。 @robitwtms
猜你喜欢
  • 2011-04-21
  • 2012-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多