Release v1.12.0: Redis错误处理优化和代码重构
🚀 Release v1.12.0 #39
✨ 主要特性
🔧 Redis错误处理优化
- 新增RedisConnectionException异常类: 专门处理Redis连接问题
- 完善连接状态检查: 所有Redis操作前都会检查连接状态
- 统一错误处理机制: 新增
safeExecute()方法统一处理Redis异常 - 增强异常信息: 提供更详细的错误信息和错误码
📦 代码重构和优化
- 提取重复代码: 新增
handleSingleDeviceToken()公共方法,统一处理单设备登录逻辑 - 参数验证统一化: 新增
validateRedisParams()方法,统一TTL和token参数验证 - 键名生成优化: 新增
generateKey()方法,统一Redis键名生成逻辑 - 代码复用性提升: 从3处重复代码减少到1个公共方法,减少约30行重复代码
🛡️ 健壮性增强
- 连接状态监控: 新增
isAvailable()方法检查Redis可用性 - 参数验证完善: 严格验证TTL和token参数的有效性
- 操作结果验证: 所有Redis操作都验证返回值,确保操作成功
- 边界条件处理: 完善各种异常情况的处理逻辑
📚 文档和测试改进
- 完善PHPDoc注释: 提供更详细的参数和返回值说明
- 增强单元测试: 新增Redis可用性、参数验证、异常情况等测试用例
- 类型声明优化: 完善类型声明,保持PHP 7.4兼容性
📊 统计信息
- 4个文件 被修改
- 240行 新增代码
- 36行 删除代码
- 1个新文件 创建 (
RedisConnectionException.php)
🔧 技术细节
新增方法
RedisHandler::checkConnection()- 检查Redis连接状态RedisHandler::generateKey()- 生成Redis键名RedisHandler::safeExecute()- 安全执行Redis操作RedisHandler::validateRedisParams()- 验证Redis操作参数RedisHandler::isAvailable()- 检查Redis可用性JwtToken::handleSingleDeviceToken()- 处理单设备登录逻辑
新增异常类
RedisConnectionException- Redis连接异常,错误码500001
兼容性
- ✅ 保持PHP 7.1+版本兼容性
- ✅ 保持向后兼容性,不影响现有API
- ✅ 所有现有功能保持不变
🎉 升级建议
- 推荐升级: 本次优化提升了代码的健壮性和可维护性
- 无破坏性变更: 现有代码无需修改即可升级
- 测试验证: 建议在测试环境验证Redis连接和错误处理
🤝 贡献
感谢所有贡献者的支持和反馈!
📄 许可证
MIT License