首页 > 解决方案 > 在 Symfony 中而不是在控制器中使用服务的最佳实践是什么?

问题描述

好吧,我正在学习 Symfony (3.3),我对Service Container. 在第一个教程中,讲师在用户、文章控制器中显示注册、登录、添加帖子、编辑、删除方法。然后在其他教程中,他们展示了相同的方法,但使用服务容器(用户和文章服务)User and Article interfaces。那么..在服务而不是控制器中实现的最佳实践是什么。

标签: phpsymfony

解决方案


我想补充一下 Alexandre 的回答,即保持控制器“纤薄”被认为是最佳做法。换句话说,只将代码放入真正必须存在的控制器中(或者仅将其放入控制器中才有意义)。

服务就像您可以在应用程序中使用的工具。对象中的一项服务,可以帮助您做某事。在一项服务中,您可以拥有许多功能。我认为理解差异的最好方法是控制器用于一个特定的操作,一个服务可以用于许多操作。因此,如果您有部分代码要在多个控制器中使用,请为其创建服务。并且为了可重用性,在你的服务中创建只做件事的函数。这使得在使用这些功能的过程中更容易。


推荐阅读