php - 在 Symfony 中而不是在控制器中使用服务的最佳实践是什么?
问题描述
好吧,我正在学习 Symfony (3.3),我对Service Container
. 在第一个教程中,讲师在用户、文章控制器中显示注册、登录、添加帖子、编辑、删除方法。然后在其他教程中,他们展示了相同的方法,但使用服务容器(用户和文章服务)User and Article interfaces
。那么..在服务而不是控制器中实现的最佳实践是什么。
解决方案
我想补充一下 Alexandre 的回答,即保持控制器“纤薄”被认为是最佳做法。换句话说,只将代码放入真正必须存在的控制器中(或者仅将其放入控制器中才有意义)。
服务就像您可以在应用程序中使用的工具。对象中的一项服务,可以帮助您做某事。在一项服务中,您可以拥有许多功能。我认为理解差异的最好方法是控制器用于一个特定的操作,一个服务可以用于许多操作。因此,如果您有部分代码要在多个控制器中使用,请为其创建服务。并且为了可重用性,在你的服务中创建只做一件事的函数。这使得在使用这些功能的过程中更容易。
推荐阅读
- c# - 对实现通用服务的抽象类实现不同的具体化
- python - 我得到 TypeError: can't multiply sequence by non-int of type 'float'
- liquid - 如何按首字母和液体对项目进行分组?
- go - 我对发送者通道的效果有疑问
- javascript - “泄露的论点”是谎言吗?
- python-3.x - 设置 keras 和 tensoflow 以与 AMD GPU 一起运行
- laravel - 不能 require_once fdpf/fpdf.php
- r - 我可以使用数据表连接或聚合函数来聚合开启日期和关闭日期之间的时间序列数据吗?
- amazon-web-services - 错误:属性值类型不正确 - Terraform 数据源(aws_ip_ranges)
- mysql - 如何对列求和,并根据 SQL 中的条件将其连接到另一个表?