我必须在哪里包含我的应用程序的业务逻辑?
Where I must contain business logic of my application?
看了很多关于应用正确架构的文章,我还是有一个疑问:应用的业务逻辑必须包含在哪里?
因为有人告诉,逻辑必须包含在模型(瘦控制器)中,另一个说模型必须只包含数据库操作逻辑。
例如:
在我的项目(在线商店)中,我有一个产品过滤器,它在 CategoryController 中使用并按产品和参数过滤 table。所以它不是控制器也不是模型。我通过创建名为 Filters 的新目录(是的,有几个不同的过滤器)解决了这个问题,并在那里包含了所有逻辑。
但我不知道这是正确的解决方案吗?我认为不是,但我不知道如何正确构建它。
所以这是我的问题:
- 我做对了吗?
- 我必须在哪里包含业务逻辑?
谢谢,祝你有愉快的一天!
P.s
对不起我的英语。
这取决于偏好。只要您使用正确的标准,就应该没问题!
所以在Laravel中,我严格使用Models
进行数据库操作。我还创建了一个名为 Services
的文件夹和另一个名为 Hydrators
的文件夹
我在服务文件夹中的服务处理业务逻辑,例如从模型和任何逻辑操作中获取数据。我的水化器获取数据并按照我希望将数据呈现给视图的方式对其进行排序。
我的服务和水龙头都采用 Single Responsibility Principle 因为这允许我在其他地方重用相同的代码以避免代码重复!
我的控制器只是后端的入口点,只做两件事;调用服务并将所需的服务拼接在一起,然后 return 结果(结果可以是从 JSON 到包含数据的视图的任何内容)。
这只是我个人的做事方式。其他人可能有不同的方式。
看了很多关于应用正确架构的文章,我还是有一个疑问:应用的业务逻辑必须包含在哪里? 因为有人告诉,逻辑必须包含在模型(瘦控制器)中,另一个说模型必须只包含数据库操作逻辑。
例如:
在我的项目(在线商店)中,我有一个产品过滤器,它在 CategoryController 中使用并按产品和参数过滤 table。所以它不是控制器也不是模型。我通过创建名为 Filters 的新目录(是的,有几个不同的过滤器)解决了这个问题,并在那里包含了所有逻辑。 但我不知道这是正确的解决方案吗?我认为不是,但我不知道如何正确构建它。
所以这是我的问题:
- 我做对了吗?
- 我必须在哪里包含业务逻辑?
谢谢,祝你有愉快的一天!
P.s 对不起我的英语。
这取决于偏好。只要您使用正确的标准,就应该没问题!
所以在Laravel中,我严格使用Models
进行数据库操作。我还创建了一个名为 Services
的文件夹和另一个名为 Hydrators
我在服务文件夹中的服务处理业务逻辑,例如从模型和任何逻辑操作中获取数据。我的水化器获取数据并按照我希望将数据呈现给视图的方式对其进行排序。
我的服务和水龙头都采用 Single Responsibility Principle 因为这允许我在其他地方重用相同的代码以避免代码重复!
我的控制器只是后端的入口点,只做两件事;调用服务并将所需的服务拼接在一起,然后 return 结果(结果可以是从 JSON 到包含数据的视图的任何内容)。
这只是我个人的做事方式。其他人可能有不同的方式。