在哪里放置对象特定的逻辑

时间:2018-01-23 21:58:52

标签: php laravel

我正在基于PHP框架Laravel和MySQL创建应用程序。 我有Site模型,其中不超过100条记录。

对于每个站点,我必须进行一些计算并得到值数组。问题是,由于站点的细节,每个单个站点需要具有不同输入值的不同计算。这导致不同网站的代码完全不同。

我的第一个教程是为SiteController中的每个站点创建函数并在需要时调用它,但这看起来很难看,并且会让控制器变胖。 请提出更好的方法来解决这个问题。

1 个答案:

答案 0 :(得分:0)

将业务逻辑放在服务中。原因是你最终尊重单一责任和分离关注等原则。您的服务层将处理业务逻辑,您的模型将处理数据库操作。

消息流:

Request -> Controller (action) -> Service > Model(s) ->
(back to) -> Service -> Controller -> View -> Response

More details