php - "Billing"属于 DDD php 项目中的哪个位置?

标签 php laravel domain-driven-design billing ddd-service

我正在构建一个新的 SaaS 应用程序,并且希望遵循 DDD 原则。

我正处于草拟想法的阶段,我遇到了这个问题。我希望人们能给我一些想法。我认为这没有必然的对或错。但我很想听听你的想法......

基本上我不确定计费属于哪里以及如何最好地实现它。

我不知道用户是否应该了解计费界面。计费是用户实体的责任吗?

我认为用户实体知道他们是否有订阅是公平的,但不知道它是如何实现的。

在这个阶段,我认为域层将指定 BillingInterace,并且实现将位于基础设施层中。 (我将首先使用 Stripe)

您会创建计费服务并传入用户实体以在 stripe 上创建客户帐户并执行计费功能吗?

或者您会编写一个特征,将其放到用户实体上,以便用户可以自己计费($user->charge() - 或其他)。

希望这是有道理的。我只是想提出一些想法,因为我在网上找不到任何关于这些东西的像样的指导。

谢谢!! 李

最佳答案

Is it the user entities responsibility to carry out billing?

我不这么认为。

At this stage Im thinking that the domain layer would specify the BillingInterace, and the implementation would live in the Infrastructure layer.

计费是域(业务)的一部分吗?如果是,那么它应该在那里。

也许计费可以是聚合根域服务。看看this其中 PurchaseOrder(聚合)可能是您的账单的帖子。并在 this ,这解释了域服务。

关于php - "Billing"属于 DDD php 项目中的哪个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34874955/

相关文章:

php - 使用 Facebook PHP SDK 获取 Facebook 广告内容

php - 如何从我的数据库中的表中选择 [somename]

authentication - 没有用户数据库的 Laravel Auth::basic()

spring - 对 Spring-Data DDD 存储库模式感到困惑

c# - 如何避免领域模型中的持久化逻辑?

domain-driven-design - DDD 中的应用级设置?

php - 如何在标题 magento 中显示心愿单 block

php - 在多个 HTML 页面中包含相同的 DIV

在 foreach 循环中使用 Intro.js 的 php 问题

Laravel:PHPUnit 和与 JavaScript 交互