首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旧应用程序和Symfony2之间的桥接会话数据

旧应用程序和Symfony2之间的桥接会话数据
EN

Stack Overflow用户
提问于 2015-01-26 18:15:32
回答 1查看 2.8K关注 0票数 0

如果这个问题在我找不到之前就被问到了,我很抱歉。我找不到我想要的答案。

我有一个用Symfony2重建的遗留应用程序,不幸的是,我需要并行运行一段时间,直到我完成整个系统的重建。我需要让symfony能够访问遗留会话数据才能正常工作。

我在Symfony网站上找到了这个:bridge.html bridge.html

但我不明白是否需要进行配置,我应该在哪里调用会话启动,以及如何从我的新应用程序访问会话数据。

我会把在symfony中给出的例子放在我创建的每个控制器中吗?

代码语言:javascript
复制
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Storage\PhpBridgeSessionStorage;

// legacy application configures session
ini_set('session.save_handler', 'files');
ini_set('session.save_path', '/tmp');
session_start();

// Get Symfony to interface with this existing session
$session = new Session(new PhpBridgeSessionStorage());

// symfony will now interface with the existing PHP session
$session->start();

看来应该有办法把它集中起来。

UPDATE手册给出了一个示例,但它没有说明它是否应该在某个控制器、服务、实体或配置中。

我尝试在控制器中使用示例代码,当我在print_r上执行$session时,没有看到任何遗留会话数据。

**

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-26 23:53:46

您所看到的是symfony使用的组件的示例代码。Symfonys会话是从在app/config.yml中设置的参数初始化的。只有在使用symfony之外的组件时,才会使用组件指令。你想要的是第一个。然而,使用:

代码语言:javascript
复制
#app/config.yml
framework:
    session:
        storage_id: session.storage.php_bridge
        handler_id: session.handler.native_file

如果在实例化symfony之前正在调用session_start()的其他应用程序中包含symfony,则意味着要使用它。我还没有测试过这一点,但让它们并行运行可能仍然有效,但是您可能最终不得不对会话处理程序进行一些定制。

也许可以考虑使用pdo会话处理程序:storage.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28156165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档