如何注入实例容器
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.3(当前的稳定版本)。
如何注入实例容器
在应用程序中使用容器时,有时你需要注入一个实例,而不是配置容器创建一个新的实例。
例如,如果您正在使用HttpKernel组件与DependencyInjection组件,然后内核
服务是注入容器内内核
类:
1 2 3 4 5 6 7 8 9 10 11 12
/ /……文摘类内核实现了KernelInterface,TerminableInterface{/ /……受保护的函数initializeContainer(){/ /……美元这- >容器- >集(“内核”,美元这);/ /……}}
的内核
服务被称为合成服务。该服务必须在容器中配置,所以容器知道服务在编译过程中确实存在(否则,根据这个服务内核
服务将得到一个“服务不存在”的错误)。
为了做到这一点,你必须使用定义::setSynthetic ():
1 2 3 4 5 6 7
使用ob娱乐下载\组件\DependencyInjection\定义;/ /合成服务不指定一个类美元kernelDefinition=新定义();美元kernelDefinition- >setSynthetic (真正的);美元容器- >setDefinition (“your_service”,美元kernelDefinition);
现在,您可以注入容器使用的实例容器::设置():
1 2
美元yourService=新YourObject ();美元容器- >集(“your_service”,美元yourService);
$容器- > get (“your_service”)
现在将返回相同的实例吗yourService美元
。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。