Symfony2服务容器-get()是否通过引用或复制返回对象?
只是一个简单的问题,想知道从Symfony2中的服务容器检索到的对象是通过引用还是作为副本返回的 我问的原因是因为我想知道我是否做了以下事情:Symfony2服务容器-get()是否通过引用或复制返回对象?,symfony,Symfony,只是一个简单的问题,想知道从Symfony2中的服务容器检索到的对象是通过引用还是作为副本返回的 我问的原因是因为我想知道我是否做了以下事情: public function helloAction() { $mailer = $this->get('acme.mailer'); $mailer->shutdown(); } 在控制器中,如果shutdown()方法在对象内部执行某些操作,那么acme.mailer服务是否会在容器中“shutdown” 换句话说,我
public function helloAction()
{
$mailer = $this->get('acme.mailer');
$mailer->shutdown();
}
在控制器中,如果shutdown()方法在对象内部执行某些操作,那么acme.mailer服务是否会在容器中“shutdown”
换句话说,我可以在从容器中获取服务后永久地更改它吗?这是好的做法吗
谢谢服务通过引用返回,就像所有PHP对象一样(默认情况下) 但这并不意味着您将始终获得给定服务的相同实例 每个服务都在一个作用域中定义。DependencyInjection容器提供两个通用作用域:
- 容器-每次请求服务时,都会得到相同的实例
- prototype—每次请求服务时,您都会得到一个新实例