hautelook/session-storage-handler-chain

这是一个允许您以高效方式从多个存储处理程序中读取/写入会话数据的Symfony 2 扩展包。

该包的官方存储库似乎已消失,因此该包已被冻结。

0.1 2013-10-30 19:02 UTC

This package is not auto-updated.

Last update: 2022-01-22 00:12:08 UTC


README

提供会话存储链处理器的Symfony2 扩展包。

Build Status Scrutinizer Quality Score SensioLabsInsight

简介

此扩展包为会话存储处理程序提供了一个链,该链的行为将根据是读取还是写入操作而有所不同。这意味着,在读取操作中,列表中首先返回给定会话ID的会话的存储处理程序获胜。其他读取器不会被查询。在类似于写入的操作中,将调用每个存储处理程序。以下存储处理程序的功能被视为类似于写入:`write()`、`destroy()` 和 `gc()`。

欢迎贡献力量。

安装

只需运行(假设您已安装 composer.phar 或 composer 二进制文件),或者将其添加到您的 `composer.json` 并运行 `composer install`

$ composer require hautelook/session-storage-handler-chain

现在将扩展包添加到您的 Kernel

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Hautelook\HautelookSessionStorageChainBundle(),
        // ...
    );
}

配置

要配置扩展包,请编辑您的 `config.yml` 或 `config_{environment}.yml`

# Session Chain
hautelook_session_storage_chain:
    reader:
        - reader1
        - reader2
        ...
    writer:
        - writer1
        - writer2
        ...

示例用例和配置

您想使用主/从设置(写入主节点,从从节点读取)。此外,您想在创建会话时将会话存储在 Memcache 中,并在可能的情况下尝试从该存储读取。

配置

# The different storage handlers:
services:
    pdo_master:
        class: PDO
        arguments:
            - "mysql:host=%database_master_host%;dbname=%database_master_name%"
            - %database_master_user%
            - %database_master_password%

    pdo_slave:
        class: PDO
        arguments:
            - "mysql:host=%database_slave_host%;dbname=%database_slave_name%"
            - %database_slave_user%
            - %database_slave_password%

    memcache:
        class: Memcache
        calls:
            - [connect, [%memcache_server_host%, %memcache_server_port%]]

    session.storage.pdo_master:
        class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
        arguments: [@pdo_master, %session.pdo.db_options%]

    session.storage.pdo_slave:
        class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
        arguments: [@pdo_slave, %session.pdo.db_options%]

    session.storage.memcache:
        class:     Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler
        arguments: [@memcache, %session.memcache.options%]

# Session Chain
hautelook_session_storage_chain:
    reader:
        - session.storage.memcache
        - session.storage.pdo_slave
    writer:
        - session.storage.memcache
        - session.storage.pdo_master

framework:
    session:
        handler_id: hautelook.session_storage_chain

许可协议

SessionStorageHandlerChainBundle 在 MIT 许可证下发布。有关详细信息,请参阅捆绑包中的 Resources/meta/LICENSE 文件。