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

发布于 2015-12-06 07:37:16 | 195 次阅读 | 评论: 0 | 来源: 网络整理

PHP 会话的默认行为是不管会话有没有改变都保存会话。在 Symfony 中,每当会话被接入,可以用来确定会话的时效和空闲时间的元数据都会被记录(会话产生的/最后使用的)。

如果出于性能原因您想要限制会话保存的频率,这个功能在使元数据保持相对精确的情况下,调整元数据更新的间隔和减少会话保存的频率。如果其它会话数据被更改,会话始终保存。

您可以用设置 framework.session.metadata_update_threshold 一个大于 0 秒的值方法告诉 Symfony 不要更新元数据直到距“会话最后一次更新”时间过去了一段特定时间。

YAML:

framework:
    session:
        metadata_update_threshold: 120

XML:

<?xml version="1.0" encoding="UTF-8" ?>
<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:framework="http://symfony.com/schema/dic/symfony"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd
                        http://symfony.com/schema/dic/symfony http://symfony.com/schema/dic/symfony/symfony-1.0.xsd">

    <framework:config>
        <framework:session metadata-update-threshold="120" />
    </framework:config>

</container>

PHP:

$container->loadFromExtension('framework', array(
    'session' => array(
        'metadata_update_threshold' => 120,
    ),
));

PHP 默认行为是不管会话有没有改变都保存会话。当使用 framework.session.metadata_update_threshold 时,Symfony 会将会话处理程序裹入(wrap)(配置在 framework.session.handler_id 中) WriteCheckSessionHandler。这将阻止任何没有被修改的会话写入。

请注意,如果每个请求(request)都没有写入会话,它可能会比通常更早的回收(garbage collected)。这意味着您的用户可能会比预期提前注销。

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

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