我创建了一个服务,但每次调用它时,它都会创建一个新实例,而不是使用同一个实例。这是我的 services.yml:
my.sessiondata:
class: My\Bundle\Service\SessionData
calls:
- [ setServices, [@security.context, @service_container, @session, @doctrine.orm.entity_manager] ]
scope: container
我的服务:
namespace My\Bundle\Service;
class SessionData
{
protected $company;
public function setServices($securityContext, $serviceContainer, $session, $em)
{
var_export($this->company);
if (!$this->company)
{
$this->company = "TEST";
var_export($this->company);
}
}
}
我在这样的控制器中调用服务:
$sessionData = $this->container->get('my.sessiondata');
每次我调用控制器时,视图都会显示 NULL'TEST'。
知道为什么实例丢失了吗?