我还是Symfony的新手。我已经知道你可以创建一个服务并在services.xml文件中注册它。
据我所知,有两种方法可以在服务中使用其他服务:
1)在services.xml文件中,为要使用的每个服务添加标记。在相应服务类的__construct方法中,将服务分配给不同的变量,然后可以通过这些变量访问服务。
2)在services.xml文件中,为service_container添加标记。在相应服务类的__construct方法中,现在将service_container分配给变量,然后通过容器变量访问其他服务。
我的问题是,这两种方式中的哪一种是“更好的实践”?
答案 0 :(得分:0)
简短的回答:第一个解决方案是prefred
第一个(首选)解决方案称为依赖注入,它主要优于第二个(服务定位器)方法。 与服务定位器方法相比,依赖注入有一些优势:
我使用服务定位器的主要原因是进行延迟实例化以获得一些性能。
请注意,这两种技术可能有更多优点/缺点。