1

当我从 symfony 2.0 迁移到 symfony 2.1 时,我遇到了会话问题。

我正在使用 simplesamlphp 进行身份验证,并且在 symfony 2.0 上一切正常。

在 Symfony 2.1 上是不行的。我在 phpinfo->session 上检查了它们之间的差异,这是我得到的:

                          symfony2.1         symfony 2.0        Master Value
session.save_handler         user              files                files

session.save_path     (..)/symproject/app   (..)/wamp/tmp      (..)/wamp/tmp
                      /cache/dev/sessions

这个值必须等于 php.ini,因为 simplesaml 需要它!

我可以framework:session:save_path在 config.yml 上设置属性,但我认为这不是一个好习惯,因为保存路径可能会有所不同,具体取决于我是否在本地开发机器上(我的项目在 git 上)。

关于 save_handler,我找不到在 config.yml 上指定它的方法。我是否坚持使用“用户”?

这个 symfony 版本发生了什么?在 symfony 2.0 中这是开箱即用的!请帮忙。没有像样的文档(相信我我看过!!)。

4

1 回答 1

3

终于我明白了!

Symfony 2.1 默认具有 Native* 驱动程序。这会覆盖 php.ini 上现有的配置。

如果要使用 php-ini 配置,则必须将其传递nullNativeSessionStorage处理程序 arg 的构造函数。

这是通过在 config.yml 上放置以下配置来完成的:

framework:
    session:
        handler_id: ~

可以在 此处阅读有关此决定的更多信息。

symfony 文档和升级手册中缺少此信息。

于 2012-09-27T10:51:32.563 回答