传统上,您会以这种方式使用服务容器:
$container->get('my_service');
但是,如果只存在一个特定类的定义,我想通过类名获取此服务:
$container->xxx('My\Application\Service');
service container 这可能吗? ?
最佳答案
不,这是不可能的,因为:
- 一个类可以(并且在许多情况下将会)出现不止一次 [1]
- 使用 DIC 的主要原因是解耦具体实现 从它的使用,因此你根本不需要 DIC,如果你想 具体类的实例。
[1] 也就是说,这个类只出现一次并不是在 DIC 本身中实现边缘情况的好理由。
关于php - Symfony 2 依赖注入(inject) : is it possible to get a service by class name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11469189/