mintyphp/session-handlers

更好的会话处理器

v1.0.3 2022-12-09 16:57 UTC

This package is auto-updated.

Last update: 2024-09-09 22:34:25 UTC


README

此仓库包含一组支持锁定的PHP会话保存处理程序。我还包含了一个测试套件来证明它们确实如此。当前可测试的处理程序(及其对应的测试模式)包括:

请注意,标准模式可测试的处理程序也实现了严格模式,但不能作为严格处理程序进行测试。

要求

您可以使用以下命令安装此脚本的依赖项:

sudo apt install php-cli php-curl

可以使用以下命令安装可选依赖项:

sudo apt install memcached php-memcached redis php-redis

您需要PHP 7.4或更高版本来运行代码。

使用处理程序

此包位于Packagist,可以使用Composer安装,使用:

composer require mintyphp/session-handlers

您可以通过将以下两行代码添加到PHP代码中来使用Redis处理程序

ini_set('session.save_path', 'tcp://localhost:6379');
ini_set('session.use_strict_mode', true);
session_set_save_handler(new RedisSessionHandler(), true);

请注意,这些行必须在"session_start()"调用之前执行。

运行测试

您可以使用以下命令从命令行运行测试:

php run-tests.php

代码将为每个处理程序执行约1秒,并为每个处理程序测试104个HTTP调用。以下输出表示测试成功

standard - default    : OK
standard - memcachedn : OK
standard - redisn     : OK
strict   - files      : OK
strict   - memcached  : OK
strict   - redis      : OK

在失败的测试中会出现“FAILED”一词,如果Redis或Memcache的PHP模块没有加载,则会显示“SKIPPED”。

压力测试

使用此命令进行100次运行

for i in `seq 1 100`; do php run-tests.php silent; done

如所示,您可以使用“silent”参数来抑制成功或跳过的测试的输出。

到其他锁定处理程序的链接

以下是一些其他锁定会话处理程序的实现:

享受吧!