我必须在哪里包含应用程序的业务逻辑?

时间:2019-05-31 09:03:43

标签: php laravel architecture business-logic

在阅读了很多有关正确的架构应用程序的文章之后,我仍然有一个问题:应用程序业务逻辑必须包含在哪里? 因为有人告诉我们,逻辑必须包含在模型(瘦控制器)中,另一个人则说模型必须仅包含数据库操作逻辑。

例如:

在我的项目(在线商店)中,我有一个产品过滤器,该过滤器在CategoryController中使用,并按Products and Parameters表进行过滤。因此,它不是控制器,也不是模型。我通过创建名为Filters的新目录(是的,有几个不同的过滤器)解决了这个问题,并在其中包含了所有逻辑。 但是我不知道这是正确的解决方案吗?我认为不是,但是我不知道如何正确构建它。

这是我的问题:

  1. 我做对了吗?
  2. 我必须在哪里包含业务逻辑?

谢谢,祝你有美好的一天!

秒 对不起,我的英语。

1 个答案:

答案 0 :(得分:0)

取决于首选项。只要您使用正确的标准,就可以了!

因此在Laravel中,我严格使用Models进行数据库操作。我还创建了一个名为Services的文件夹和另一个名为Hydrators

的文件夹

我在service文件夹中的服务处理业务逻辑,例如从模型和任何逻辑操作中获取数据。我的水化器会按照我希望将数据呈现给视图的方式对数据进行排序。

我的服务和混合器都使用Single Responsibility Principle,因为这使我可以在其他地方重用相同的代码,以避免代码重复!

我的控制器只是后端的入口点,仅做两件事;调用服务并将所需的服务缝合在一起并返回结果(结果可能是从JSON到包含数据的视图的任何内容)。

这只是我个人的处事方式。其他人可能有不同的方式。