【发布时间】:2018-01-09 20:48:26
【问题描述】:
我对 Symfony 还是很陌生。我已经知道你可以创建一个服务并在 services.xml 文件中注册它。
据我所知,在一个服务中使用其他服务有两种方式:
1) 在 services.xml 文件中,为每个要使用的服务添加一个标签。在你对应的服务类的__construct方法中,你将服务分配给不同的变量,然后就可以通过这些变量来访问服务。
2) 在 services.xml 文件中,为 service_container 添加一个标签。在对应服务类的 __construct 方法中,您现在将 service_container 分配给一个变量,然后可以通过容器变量访问其他服务。
我的问题是,这两种方法中哪一种是“更好的做法”?
【问题讨论】:
-
第一种方式肯定是更好的方式,只要你提前知道自己需要哪些服务。第二种方法称为服务定位器。你可以搜索这个词来研究它的缺点。
标签: xml symfony service dependency-injection containers