必须先安装PHP Redis扩展(redis.so),再用Composer安装predis/predis和firebase/php-jwt类库;前者是底层C扩展,后者是PHP客户端与JWT工具,缺一不可。

直接在游戏网站项目里用 Composer 装 PHP-Redis 和 PHP-JWT,核心是分清两件事:一个是装 PHP 扩展(redis.so),另一个是装 PHP 类库(predis 或 firebase/php-jwt)。两者缺一不可,但作用不同、安装方式也不同。
先确认并安装 PHP Redis 扩展(必需)
PHP-Redis 不是 Composer 包,而是底层 C 扩展。没它,任何 Redis 客户端类库都跑不起来,会报 Class 'Redis' not found。
- 运行
php -m | grep redis,没输出说明扩展根本没装 - 用 PECL 安装:
pecl install redis - 编辑 php.ini,加上这行:
extension=redis.so(Linux/macOS)或extension=php_redis.dll(Windows) - 重启 Web 服务(Apache/Nginx)或 PHP-FPM,否则不生效
再用 Composer 装 Redis 客户端类库(可选但推荐)
装完扩展后,你可以选一个客户端来写代码。游戏网站建议用 predis/predis ——纯 PHP 实现,无需额外配置,开发调试快,适合中小流量游戏后端。
- 执行命令:
composer require predis/predis - 在代码中使用:
$client = new Predis\Client(['scheme' => 'tcp', 'host' => '127.0.0.1', 'port' => 6379]); - 注意:Laravel 9+ 已弃用 predis,但原生 PHP 游戏站完全可用,无需切换
用 Composer 装 JWT 库(生成登录 Token)
游戏登录、会话续期、跨服验证都靠 JWT。推荐官方维护的 firebase/php-jwt,稳定、文档全、支持 HS256/RS256。
- 执行命令:
composer require firebase/php-jwt - 确保已引入自动加载:
require 'vendor/autoload.php'; - 生成 Token 示例:
$key = 'your-game-secret-key-2026';
$payload = [
'uid' => 10086,
'exp' => time() + 3600,
'iss' => 'game-server'
];
$token = \Firebase\JWT\JWT::encode($payload, $key, 'HS256');
```
验证时用 JWT::decode(),并包好 try/catch 处理过期、签名错误等异常。
整合到游戏逻辑中的小提醒
比如用户登录成功后,生成 JWT 并存入 Redis 做短期会话绑定(避免仅靠 Token 无法主动踢下线):
- Token 存 Redis:
$redis->setex("token:{$uid}", 3600, $token); - 每次请求校验 JWT 后,再查 Redis 确认是否已被注销
- 登出时删 Redis key:
$redis->del("token:{$uid}");
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











