我完全困惑了。
Laravel 结构是 MVC,但是最近听说有时开发者在 Laravel 中使用 DDD。
我试图找到一些使用 DDD 的 Laravel 项目,但没有得到任何结果
有时应用程序处于早期阶段,采用微服务架构并不是最佳选择,但我们迟早可能需要扩展项目。就我个人而言,在这些场景中,我更喜欢 DDD。因此,通过 DDD 的良好实现,我们可以在单体应用程序中分离不同的业务逻辑,直到需要扩展为止。
我曾经在 Laravel 应用程序中使用过 DDD。我在
Domain
文件夹内创建了一个 app
文件夹。对于我拥有的每个域,我创建了一个文件夹,其中包含一个迷你 Laravel 应用程序(包括控制器、配置、路由、服务等),因此我有一个项目,准备在扩展时拆分为更小的服务。
棘手的部分是实施基础设施。我们通常在这些域之间有很多共享代码(例如事件、通知等),因此我需要将所有这些代码写入
Infrastructure
文件夹中,并像某些包一样使用它们,并且在扩展时,我再次复制将整个文件夹放入新服务中。
除了扩展的需要之外,有时我们还有一个包含 +100 个控制器的大型整体应用程序。在标准 Laravel 架构中处理它们将是一场灾难。在这些情况下,为了获得更好的可维护性,采用 DDD 可能是一个好主意。