在symfony2中,每个用户创建的控制器都扩展了Controller Class,如下所示,
class MyController extends Controller {
因此,$ this对象可以使用与会话处理相关的功能,但Vendor和Core中的控制器不会扩展Controller类,因此不提供对会话相关功能的访问。那么有没有办法在不扩展Controller类的情况下使用这些函数。
目前我正在使用$_SESSION[]
来设置和获取会话变量。
除了上述之外还有什么办法吗?
答案 0 :(得分:2)
Symfony2为会话提供服务,这是您要检索的内容。 symfony2中的所有服务都是使用服务容器检索的,这就是你所指的
$this->get('session');
要在您自己的控制器中正确使用服务容器,您可以......
get()
方法可供您的子控制器使用)第一个选择是正确的方法,您可以完全控制哪些服务然后注入您的相应控制器(参见service container documentation)