如何向容器中注入实例
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何向容器中注入实例
在某些应用程序中,您可能需要将类实例作为服务注入,而不是配置容器来创建新实例。
例如,内核
中的服务被注入到容器中ob娱乐下载内核
类:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/ /……使用ob娱乐下载\组件\HttpKernel\KernelInterface;使用ob娱乐下载\组件\HttpKernel\TerminableInterface;摘要类内核实现了KernelInterface,TerminableInterface{/ /……受保护的函数initializeContainer(){/ /……$这->容器->集(“内核”,$这);/ /……}}
调用在运行时设置的服务合成服务.必须配置此服务,以便容器在编译期间知道该服务的存在(否则,依赖于内核
将得到一个“服务不存在”错误)。
为了做到这一点,在你的服务定义配置中将服务标记为合成服务:
- YAML
- XML
- PHP
1 2 3 4 5
#配置/ services.yaml服务:#合成服务不指定类app.synthetic_service:合成:真正的
现在,您可以使用容器::设置():
1 2 3
//实例化合成服务$服务的=……;$容器->集(“app.synthetic_service”,$服务的);
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。