如何注入实例容器

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.4,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何注入实例容器

在某些应用程序中,您可能需要注入服务类实例,而不是配置容器创建一个新的实例。

例如,内核在Symfony注入容欧宝娱乐app下载地址器内内核类:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/ /……使用欧宝娱乐app下载地址\组件\HttpKernel\KernelInterface;使用欧宝娱乐app下载地址\组件\HttpKernel\TerminableInterface;文摘内核实现了KernelInterface,TerminableInterface{/ /……受保护的函数initializeContainer(){/ /……美元- >容器- >集(“内核”,美元);/ /……}}

在运行时调用的服务集合成服务。该服务必须配置容器知道服务在编译过程中存在(否则,取决于服务内核会得到一个“服务不存在”错误)。

为了这样做,马克的服务合成服务定义配置:

  • YAML
  • XML
  • PHP
1 2 3 4 5
服务:#不指定一个类合成服务app.synthetic_service:合成:真正的

现在,您可以注入容器使用的实例容器::设置():

1 2 3
/ /实例化合成服务美元服务的=……;美元容器- >集(“app.synthetic_service”,美元服务的);
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。