Symfony SessionInterface as service与Request getSession()相同
Symfony的会话界面对我来说仍然有点模糊/神奇。所以,如果有人能启发我,请 当然,请求包含一个会话对象,可以在控制器中使用Symfony SessionInterface as service与Request getSession()相同,symfony,session,service,Symfony,Session,Service,Symfony的会话界面对我来说仍然有点模糊/神奇。所以,如果有人能启发我,请 当然,请求包含一个会话对象,可以在控制器中使用 类SimpleControl扩展了AbstractController { 公共功能索引(请求$Request):响应 { $request->getSession()->set('session-var',10); } } 但是,在一个服务中,您还可以将SessionInterface作为一个服务包括在内,并使用相同的ParameterBag 类SimpleServ
类SimpleControl扩展了AbstractController
{
公共功能索引(请求$Request):响应
{
$request->getSession()->set('session-var',10);
}
}
但是,在一个服务中,您还可以将SessionInterface作为一个服务包括在内,并使用相同的ParameterBag
类SimpleService
{
公共函数构造(SessionInterface$session)
{
$session->set('session-var',10);
}
}
我的同事指出,会议是(而且应该始终是)请求的一部分。这对我来说很有意义,但也让我思考:当SessionInterface是请求的对象/属性时,为什么您能够将它作为服务提供给我们
我最终想要实现的是在我的控制器中包含一个服务,并在该服务中与当前会话一起工作 我的用例的代码示例如下所示
类SimpleControl扩展了AbstractController
{
私人$simpleService;
公共函数构造(SimpleService$SimpleService)
{
$this->simpleService=$simpleService;
}
公共功能索引(请求$Request):响应
{
$this->simpleService->doSomething();
}
}
类SimpleService
{
非公开会议;
公共函数构造(SessionInterface$session)
{
$this->session=$session;
}
公共函数doSomething()
{
//做一些事情…并将结果保存在会话中。
$this->session->set('just_a_preference',50);
}
}
因此:
LoggingSessionDecorator
,它将记录会话活动$request->getSession()->set(…)
您违反了原则,即: