关于Symfony2 Session

时间:2013-01-14 13:24:21

标签: session symfony

在symfony2中,每个用户创建的控制器都扩展了Controller Class,如下所示,

class MyController extends Controller {

因此,$ this对象可以使用与会话处理相关的功能,但Vendor和Core中的控制器不会扩展Controller类,因此不提供对会话相关功能的访问。那么有没有办法在不扩展Controller类的情况下使用这些函数。

目前我正在使用$_SESSION[]来设置和获取会话变量。

除了上述之外还有什么办法吗?

1 个答案:

答案 0 :(得分:2)

Symfony2为会话提供服务,这是您要检索的内容。 symfony2中的所有服务都是使用服务容器检索的,这就是你所指的

$this->get('session');

要在您自己的控制器中正确使用服务容器,您可以......

  1. 将您的控制器配置为服务(请参阅:here
  2. 扩展Symfony2堆栈提供的基本Controller类(使get()方法可供您的子控制器使用)
  3. 第一个选择是正确的方法,您可以完全控制哪些服务然后注入您的相应控制器(参见service container documentation