我创建了一个新服务,其工作涉及在运行时必须按名称 加载的其他服务上调用函数。所以,我无法将一组静态服务传递给我的服务,我希望它实际上能够在服务容器本身上调用get()
。 Symfony文档没有帮助描述如何在Controller类之外执行此操作,我可以在其中调用$ this-> get()。谁知道怎么做?
答案 0 :(得分:2)
您有两种可能的解决方案:
<强> 1。注入服务容器:
<argument type="service" id="service_container" />
然后在你的班上:
use Symfony\Component\DependencyInjection\Container;
//...
public function __construct(Container $container, ...) {
<强> 2。扩展ContainerAware类
use Symfony\Component\DependencyInjection\ContainerAware;
class YourService extends ContainerAware
{
public function someMethod($serviceName)
{
$this->container->get($serviceName)->doSomething();
...
}
}