Symfony2中的Zend Framework 1应用程序 - 会话问题

时间:2015-03-09 14:40:36

标签: php symfony session zend-framework

我已将旧网站添加到我们新的Symfony应用程序中的旧版主机中。

我的会话有问题。

如果我使用Symfony的默认会话处理程序,我会得到以下内容:

session has already been started by session.auto-start or session_start()

enter image description here

然而,如果我使用会话php_bridge作为遗留应用程序集成的建议(很可能不是为此而是为$ _SESSION)然后网站加载但会话不会持续或如果他们这样做他们不能被摧毁。

enter image description here

My related question here

有人有任何建议吗?

亲切的问候 森

1 个答案:

答案 0 :(得分:2)

几个月前,我使用Zf1WrapperBundle将我们的遗留Zend应用程序包装在Symfony项目中。我遇到了与你相同的“会话已经开始”的问题。 为了快速解决这个问题,我编辑了Zend/library/Zend/Session.php。它有点脏,但效果很好。如果你想这样做,你必须这样做(取决于你的Zend 1版本,行号可能不同):

  

第462行:评论它    // throw new Zend_Session_Exception('session has already been started by session.auto-start or session_start()');

     

第480行:禁用错误触发器    $startedCleanly = @session_start();

     

第490行:评论它    // session_write_close();

     第493行:评论它    // throw new Zend_Session_Exception(__CLASS__ . '::' . ____FUNCTION____ . '() - ' . Zend_Session_Exception::$sessionStartError);

     

第728行:禁用错误触发器    @session_destroy();

话虽如此,在这种情况下,编辑Zend核心文件并不像听起来那么糟糕,因为如果你将遗留项目包装在Symfony中,你可能会考虑将你的遗留zend项目完全迁移到symfony。几个月后,你将摆脱遗留的zend代码。