如何定义非共享服务
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.8,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
如何定义非共享服务
2.8
的共享
选项在Symfony 2.8中引入。欧宝娱乐app下载地址在Symfony 欧宝娱乐app下载地址2.8之前,您必须使用原型
范围。
在服务容器中,默认情况下所有服务都是共享的。这意味着每次检索服务时,都会得到相同实例。这通常是您想要的行为,但在某些情况下,您可能希望总是得到新实例。
为了总是获得一个新实例,请设置共享
设置为假
在服务定义中:
- YAML
- XML
- PHP
1 2 3 4 5 6
# app / config / services.yml服务:app.some_not_shared_service:类:...共享:假#……
1 2 3 4
<!——app/config/services.xml——> .xml<服务><服务id=“app.some_not_shared_service”类=“…”共享=“假”/>服务>
1 2 3 4 5 6 7
/ / app / config / services.php使用欧宝娱乐app下载地址\组件\DependencyInjection\定义;$定义=新定义(“……”);$定义->setShared (假);$容器->setDefinition (“app.some_not_shared_service”,$定义);
现在,只要你打电话集装箱- > get(“app.some_not_shared_service”)
或者注入这个服务,您将收到一个新实例。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。