Assetic Bundles 缓存 Composer 配置 控制台 控制器 调试 部署 Doctrine 电子邮件 事件分发器 表达式 表单 前端 日志 分析器 请求 路由 安全 序列化 服务容器 会话 PSR 7 Symfony 版本 模板 测试 升级 验证 Web 服务器 Web 服务 工作流

发布于 2015-12-06 07:27:08 | 193 次阅读 | 评论: 0 | 来源: 网络整理

2.3 能够与传统 PHP 会话结合的能力在 Symfony 2.3 中介绍。

如果您整合 Symfony 的全栈框架和从 session_start() 开始会话的遗留应用程序的话,通过使用 PHP Bridge session,可以使您仍然能够使用 Symfony 会话管理。

如果应用程序已设置它自己的 PHP 保存处理程序,您可以使 handler_id 指定为空:

YAML:

framework:
    session:
        storage_id: session.storage.php_bridge
        handler_id: ~

XML:

<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:framework="http://symfony.com/schema/dic/symfony">

    <framework:config>
        <framework:session storage-id="session.storage.php_bridge"
            handler-id="null"
        />
    </framework:config>
</container>

PHP:

$container->loadFromExtension('framework', array(
    'session' => array(
        'storage_id' => 'session.storage.php_bridge',
        'handler_id' => null,
));

否则,如果问题仅仅是您不能避免应用程序以 session_start() 启动会话,您仍可以通过指定保存处理程序来使用一个基于 Symfony 的会话保存处理程序,就像下面的例子那样:

YAML:

framework:
    session:
        storage_id: session.storage.php_bridge
        handler_id: session.handler.native_file

XML:

<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:framework="http://symfony.com/schema/dic/symfony">

    <framework:config>
        <framework:session storage-id="session.storage.php_bridge"
            handler-id="session.storage.native_file"
        />
    </framework:config>
</container>

PHP:

$container->loadFromExtension('framework', array(
    'session' => array(
        'storage_id' => 'session.storage.php_bridge',
        'handler_id' => 'session.storage.native_file',
));

如果遗留应用程序需要它自己的会话保存处理程序,请不要重写它。代替的是设置 handler_id: ~。请注意,在会话开始后,会话保存处理程序将不能更改。如果应用程序在 Symfony 初始化之前开始会话,会话保存程序会早已设置好。这种情况下,您需要 handler_id:。只有当您确认遗留应用程序可以无副作用的使用 Symfony 保存处理程序并且会话不在 Symfony 初始化之前启动的情况下重写保存程序。

Integrating with Legacy Sessions 获取更多细节。

最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务