版本 4.6.4

发布日期:2025 年 12 月 12 日

CodeIgniter 的 4.6.4 版本发布

消息变更

  • 新增 Honeypot.noTemplateHoneypot.noNameFieldHoneypot.theClientIsABot

变更

  • Config:Config\Database::$tests 增加了 synchronous 键。仅适用于 SQLite3 驱动。

弃用

  • Exception:
    • 弃用 CodeIgniter\Honeypot\Exceptions\HoneypotException::forNoHiddenValue() 方法。该方法从未被使用。

Bug 修复

  • Cache: 修复了 PredisHandler::deleteMatching() 在无匹配模式的键时导致 Redis 报错的问题。

  • Cache: 修复了 RedisHandler::deleteMatching() 在无匹配模式的键时返回 false 而非 int 的问题。

  • Database: 修复了 Database::connect() 会将非共享连接实例存储在共享缓存中的问题。

  • Database: 修复了 SQLSRVOCI8Connection::getFieldData() 在返回列默认值时包含多余字符的问题(仅限这些处理器),现已遵循与其他驱动一致的规范。

  • Database: 修复了 BaseBuilder::compileOrderBy() 可能使用字符串覆盖 QBOrderBy 而非保持数组形式的问题。该问题会导致类型错误,并阻止追加额外的 ORDER BY 子句。

  • Database: 修复了 SQLite3 中除非密码参数为空字符串否则会被忽略的问题。

  • Debug: 修复了 ExceptionHandler 在异常堆栈追踪包含资源(如数据库连接)、闭包或循环引用时导致 JSON 编码失败的问题。

  • Forge: 修复了 PostgreSQLSRV 使用 Forge::modifyColumn() 方法修改列默认值时产生错误 SQL 语法的问题。

  • Migrations: 修复了 Session 表迁移模板中 timestamp 字段名与 MySQL/MariaDB 保留关键字冲突的问题。

  • Model: 修复了 Model::replace() 无法正确设置 created_at 字段(如果存在)的问题。

  • Model: 修复了 Model::insertBatch()Model::updateBatch() 未对插入或更新的值应用类型转换(casts)的问题。

  • Toolbar: 修复了 Collectors\Logs 中导致调试工具栏无法显示 “Logs” 标签页的问题。

  • Toolbar: 修复了 toolbar.js 在某些场景下导致 “Uncaught TypeError” 的问题。

  • Validation: 修复了 FormatRules::valid_base64() 验证规则在检查无效 Base64 字符串时导致 TypeError 的问题。

请查看仓库的 CHANGELOG.md 以获取完整的 Bug 修复列表。