Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 关于Symfony2会议_Session_Symfony - Fatal编程技术网

Session 关于Symfony2会议

Session 关于Symfony2会议,session,symfony,Session,Symfony,在symfony2中,每个用户创建的控制器扩展控制器类,如下所示 class MyController extends Controller { 因此,与会话处理相关的函数可与$this对象一起使用,但Vendor和Core中的控制器不扩展Controller类,因此不提供对会话相关函数的访问。那么,有没有办法在不扩展控制器类的情况下使用这些函数呢 目前,我正在使用$\u SESSION[],来设置和获取会话变量 除了上面提到的,还有别的办法吗 Symfony2为会话提供服务,这是您试图检索的

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

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

目前,我正在使用
$\u SESSION[]
,来设置和获取会话变量


除了上面提到的,还有别的办法吗

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

$this->get('session')

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

  • 将控制器配置为服务(请参阅:)
  • 扩展Symfony2堆栈提供的基本控制器类(使子控制器可以使用
    get()
    方法)

  • 第一个选项是正确的方法,您可以完全控制哪些服务随后被注入到各自的控制器中(请参见)

    好吧,我知道这个解决方案,我的问题不同。我想在Node.php中使用Twig core lib中的session变量,目前它实现了Twig_NodeInterface。选项1中提供的解决方案,我认为这是最后一个解决方案,当symfony2不提供选项时,实现一个处理会话相关操作的服务。关于选项2,我从一开始就知道。谢谢。访问容器内任何东西的正确方法是提供服务。您是否阅读过服务容器文档?