【问题标题】:Using Laravel as N tier Architecture使用 Laravel 作为 N 层架构
【发布时间】:2020-04-22 23:24:27
【问题描述】:

我是 Laravel 新手,我在这里看到了 MVC 模式,我想知道 Laravel 中主动 N 层架构的最佳实践。

例如:控制器、业务逻辑、数据访问层(假设 Laravel 中的模型)、表示层(DTO 用作 JSON 响应)

在 Laravel 中,我在哪里适合业务逻辑和 DTO?

【问题讨论】:

  • 您的图表已经显示了业务逻辑的放置位置(或多或少)。
  • 我的意思是在 Laravel 中我应该在哪里添加它,意味着我应该创建 BL 目录和一些类等?
  • 对我来说听起来很合理。
  • 因此想了解一下我们可以在 Laravel 中使用的最佳实践是什么,或者 Laravel 是否提供了 OOB 来支持这一点。
  • 询问“最佳实践”是not the best way to spend your time here。 “最佳实践”是最有效地满足您的特定要求的一种。向我们询问您遇到的具体问题。

标签: laravel


【解决方案1】:

业务逻辑可能在 Laravel 的很多地方:

  1. 在控制器本身中
  2. Events and Event Listeners
  3. 在服务中
  4. Jobs(是否排队)

有很多方法可以做到这一点,由您决定哪种方法适合每种情况。如果您尝试关注SOLID Principles,您将不得不使用其中一些选项。

对于表示层,您可以使用Laravel API Resources,因为它提供了一种简单的方法来转换您的数据并以标准化格式输出为 JSON。

【讨论】:

  • 感谢您的帮助。我的理念是不在控制器中编写逻辑。我认为,事件中的逻辑可能不符合我的要求。虽然我会尝试服务此外,工作很有用,但不是我正在寻找的地方,已经阅读了 API 资源,也会尝试一下。所以我现在想的是服务和 API 资源。
猜你喜欢
  • 1970-01-01
  • 2013-02-03
  • 2013-07-03
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
相关资源
最近更新 更多