php - Symfony 2 依赖注入(inject) : is it possible to get a service by class name?

标签 php symfony dependency-injection

传统上,您会以这种方式使用服务容器:

$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/

相关文章:

symfony - 无法找到模板 Symfony2

c# - 如何解决 Autofac InstancePerHttpRequest

java - 带有@Qualifier 的@Bean 声明不起作用

php - 这是 'better way' 的做法吗?

javascript - 如何从动态html表中读取输入值?

javascript - 如何使用 base-64 源创建 Image 对象?

php - 依赖注入(inject)——静态函数

php - 我想要选择具有相同值的记录,并且 joomla 的一个用户将其添加到数据库表中

symfony - Doctrine ODM 嵌入文档父引用

symfony - 如何验证从数据库获取然后在 symfony2 中翻译的选择?