Php 领域驱动的设计应用层可以有模型吗
ddd中的应用层可以有模型吗Php 领域驱动的设计应用层可以有模型吗,php,design-patterns,domain-driven-design,ddd-service,Php,Design Patterns,Domain Driven Design,Ddd Service,ddd中的应用层可以有模型吗 更明确地说,我的系统中有一个凭证实体,它与域层之外的身份验证过程相关,那么这个实体将在哪里?我是域驱动设计的新手。应用层可以使用自己的数据表示。如果将其连接到用户界面,应用程序层将必须转换域对象以查看可编辑的数据 但我不会称之为“模型”,除非是“视图模型” 没有更多的细节,很难说有什么更有用的,所以我将尝试通过示例来回答您的集成问题 沃恩·弗农的示例应用程序 看看,您可以将身份验证服务与您的消费应用程序隔离开来。Vernon为此建模了三个独立的Java应用程序 现在
更明确地说,我的系统中有一个
凭证
实体,它与域层之外的身份验证过程相关,那么这个实体将在哪里?我是域驱动设计的新手。应用层可以使用自己的数据表示。如果将其连接到用户界面,应用程序层将必须转换域对象以查看可编辑的数据
但我不会称之为“模型”,除非是“视图模型”
没有更多的细节,很难说有什么更有用的,所以我将尝试通过示例来回答您的集成问题
沃恩·弗农的示例应用程序
看看,您可以将身份验证服务与您的消费应用程序隔离开来。Vernon为此建模了三个独立的Java应用程序
现在,IdentityAccess服务提供了所有身份验证。在那里,您可以创建租户
实体。还有协作应用程序(论坛等),它使用自己的租户内部表示形式
因此,客户端应用程序获得一个TenantId
,并创建自己的Tenant
对象,以将论坛线程与租户关联<代码>租户不会从此应用中更改或保留,只会使用
将域对象绑定到它之外的内容
你的观点可能更简单。如果您有一个凭证
实体(在您的域中)和它之外的一些身份验证逻辑,请使“验证器”实现域的专用接口,并在确实需要时将其注入域对象中。(这就是端口和适配器方法:双方都可以指定接口并等待具体实现;另一方实现接口并将对象注入。)
我想你不需要从你的域中访问身份验证逻辑,但是我们需要看到更多的代码来判断这一点
Vernon使用一个来处理错误的登录详细信息。如果它在域层之外,您可以将其称为域实体。我认为
凭证
或安全相关模型应该在基础架构层