tomwalder/php-gds-session

Google AppEngine上PHP的数据存储会话处理程序

v4.1.0 2023-05-16 16:49 UTC

This package is auto-updated.

Last update: 2024-09-16 20:09:46 UTC


README

Google App Engine默认使用Memcache存储会话数据(特别是标准PHP运行时)。

这是不好的。这意味着随着共享Memcache的轮换,会话数据有时会消失。这将使任何登录的用户注销(以及丢失任何会话数据)。

这个库提供了一个数据存储+Memcache的替代会话处理程序。这意味着您的会话数据是持久化的,而不仅仅是保存在内存中。

让您能够

  • 更可靠的用户登录(减少随机注销)
  • 更长的会话时间

示例用法

您需要在应用程序代码的早期某处做这件事。

GDS\Session\Handler::start();

这就完成了!

这将用一个新的闪亮的新会话处理程序替换默认的Memcache会话处理程序。此方法确实调用了session_start(),所以请确保您没有这么做!

可选配置

您可能想要设置一个\Memcached实例,以提高性能

$mc = new Memcached('mc');
$mc->addServer('127.0.0.1', 11211);
GDS\Session\Handler::setMemcached($mc);

您可能希望提供自己的GDS网关实例,配置为指向正确的项目以及正确的协议(gRPC / REST等)。

如果您不提供自己的,则默认为"REST"并针对当前Google Cloud项目。 更多详情在这里

$gw = new \GDS\Gateway\GRPCv1('my-project-id');
GDS\Session\Handler::setGateway($gw);

全部整合

您的设置可能如下所示,使用Memcached作为自定义网关。建议最后调用::start()

// ... configure Memcached & Gateway
GDS\Session\Handler::setMemcached($mc);
GDS\Session\Handler::setGateway($gw);
GDS\Session\Handler::start();

安装

Composer

要使用Composer安装,在生产中请使用以下require行

"tomwalder/php-gds-session": "^3.0"

会话持续时间

默认情况下,处理程序使用1天(86,400秒)作为会话持续时间。

您可以通过将自定义持续时间传递给start()方法来自定义自己的持续时间,如下所示

GDS\Session\Handler::start(3600);

演示

https://gds-session-demo.appspot.com