dan*_*car 0 php domain-driven-design
在具有如下文件夹结构的PHP DDD应用程序中:
app/
views/
controllers/
domain/
models/ ( orm generated )
services/
factories/
以下类将代表什么(从DDD术语的角度来看)以及它们的推荐位置.
这看起来不像DDD应用程序.
特别是,ORM生成的模型不是域模型.如果您的应用程序核心值在数据中并且您只需要处理CRUD操作,那么这是一件好事.
在DDD应用程序中,模型来自领域专家的语言,即知道您的应用程序所针对的业务,因为它是他自己的工作,但对技术一无所知.
如果你的领域专家谈论字典和UserCollection(很奇怪,顺便说一句)这样的类实际上是模型.根据定义,HtmlValidator不是商业术语.
如果您的应用程序的价值来自技术组件,我建议您避免使用DDD tecniques.仅将DDD用于处理非常复杂的业务规则的应用程序.
编辑
大多数时候域模型值得(在任何时候)一个单独的模块.在PHP中,我建议你将它捆绑在(至少)一个单独的包中.但是,使用MVC模式并不意味着使用DDD:您可以将MVC用于数据驱动的应用程序,这很好.在这种情况下,我会在模型中只放入ORM生成的类.在这种情况下,我会将所有类放在controllers/lib文件夹中.
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |