如何设计单独的Laravel应用功能?

时间:2020-04-13 20:00:10

标签: php laravel eloquent

如果我有一个数据模型User,另一个模型代表Post,则这两个模型一起代表了业务逻辑的核心,这是一个社交应用程序,此处的主要参与者是Post和User。我有多个模型都与用户和帖子有关。它们代表了业务逻辑中的功能,例如,有一个Comment模型(这是Post和User之间的关系),而我有一个Interaction关系,用户可以在其中喜欢或不喜欢某个帖子。

我想构建一个具有核心业务逻辑(此处为Post and Usre)的应用程序,并且可以添加或不添加其功能。或有时候我想添加一些而不是

例如,我想在没有帖子可以发表评论的情况下使用该应用。因此,我希望添加和删除这些功能的过程尽可能地简单。

问题是我无法将功能分离出核心逻辑。例如,当我尝试获取模型数据时,肯定会包含其他模型的一些数据,这使得将来很难消除这些功能。

因此在Post存储库中,我可能具有以下代码:

  $postResponse = Post::where('id', $post_id);
  $postResponse->Comments = Post->comments()->where('user_id', $user_id);

  // and so on ...

如果我想删除功能“注释”及其所有相关数据,这将是一项巨大的工作。

我想知道在这种情况下应该遵循的最佳模式是什么?我刚刚阅读了有关SOLID Princples的信息,但是在这种情况下我无法应用它们,例如,如何应用“单一责任原则”来分离数据获取并将它们完全组合在一起?

0 个答案:

没有答案