Symfony1 会话结束时是否有Symfony回调?

Symfony1 会话结束时是否有Symfony回调?,symfony1,php-5.2,Symfony1,Php 5.2,我有一个应用程序正在对过滤器中的外部服务器进行身份验证。在该过滤器中,我尝试使用Symfony的setAttribute()方法在用户上设置几个会话属性: $this->getContext()->getUser()->setAttribute( 'myAttribute', 'myValue' ); 我发现,如果在设置属性后立即转储$\u SESSION。另一方面,如果我调用getAttribute('myAttribute'),我会准确地返回我输入的内容 一直以来,我都认

我有一个应用程序正在对过滤器中的外部服务器进行身份验证。在该过滤器中,我尝试使用Symfony的
setAttribute()
方法在用户上设置几个会话属性:

$this->getContext()->getUser()->setAttribute( 'myAttribute', 'myValue' );
我发现,如果在设置属性后立即转储
$\u SESSION
。另一方面,如果我调用
getAttribute('myAttribute')
,我会准确地返回我输入的内容

一直以来,我都认为读/写用户属性与读/写会话是同义词,但这似乎是一个错误的假设。是否存在时间问题?我没有收到任何非对象错误,因此用户似乎已完全初始化

这里的断路器在哪里

谢谢

更新

发生这种情况的原因是因为我在
myUser::shutdown()
中有一些代码清除了一堆东西。因为
myUser
大致相当于$\u会话(至少在属性方面),所以我假设在每个会话结束时调用
shutdown()
方法。不是。它似乎在每个请求结束时被调用,这就是为什么我的属性似乎从未被设置


现在,我想知道是否有一个会话关闭回调。有人知道吗?

根据会话处理的方式,会话存储类有两种方法,sessionGC(在垃圾收集时调用)和sessionDestroy

您可以创建自己的会话类,扩展您当前使用的会话类,我们使用的是条令/PDO。默认设置为sfSessionStorage

要更改使用的类edit Factorys.yml,请执行以下操作:

all:
  storage:
    class: mySuperNewSessionStorageClass

谢谢我不喜欢改变我的配置&扩展session类来覆盖一个方法,但这绝对是一个有效的解决方案。