tomwalder / php-gds-session
Google AppEngine上PHP的数据存储会话处理程序
v4.1.0
2023-05-16 16:49 UTC
Requires
- php: >=7.0
- tomwalder/php-gds: ^5.1 || 6.0
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);