Skip to content

Release v1.12.0: Redis错误处理优化和代码重构

Choose a tag to compare

@Tinywan Tinywan released this 02 Sep 11:57
· 16 commits to main since this release

🚀 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
  • ✅ 所有现有功能保持不变

🎉 升级建议

  1. 推荐升级: 本次优化提升了代码的健壮性和可维护性
  2. 无破坏性变更: 现有代码无需修改即可升级
  3. 测试验证: 建议在测试环境验证Redis连接和错误处理

🤝 贡献

感谢所有贡献者的支持和反馈!

📄 许可证

MIT License