如何在我的服务中访问symfony服务容器?
我已经创建了一个新服务,它的工作涉及调用其他服务上的函数,这些服务必须在运行时按名称加载。因此,我不能将一组静态服务传递给我的服务,我希望它能够在服务容器本身上调用如何在我的服务中访问symfony服务容器?,symfony,Symfony,我已经创建了一个新服务,它的工作涉及调用其他服务上的函数,这些服务必须在运行时按名称加载。因此,我不能将一组静态服务传递给我的服务,我希望它能够在服务容器本身上调用get()。Symfony文档在描述如何在控制器类之外执行此操作时没有任何帮助,在控制器类中,我可以调用$this->get()。有人知道怎么做吗?您有两种可能的解决方案: 1。注入服务容器: <argument type="service" id="service_container" /> use Symfony\C
get()
。Symfony文档在描述如何在控制器类之外执行此操作时没有任何帮助,在控制器类中,我可以调用$this->get()。有人知道怎么做吗?您有两种可能的解决方案:
1。注入服务容器:
<argument type="service" id="service_container" />
use Symfony\Component\DependencyInjection\ContainerAware;
class YourService extends ContainerAware
{
public function someMethod($serviceName)
{
$this->container->get($serviceName)->doSomething();
...
}
}
2。扩展ContainerWare类
<argument type="service" id="service_container" />
use Symfony\Component\DependencyInjection\ContainerAware;
class YourService extends ContainerAware
{
public function someMethod($serviceName)
{
$this->container->get($serviceName)->doSomething();
...
}
}
您不应在服务中插入
服务\u容器
。在您的示例中,您应该只注入所需的服务。例如,请参阅的“避免代码依赖于容器”部分。