StartMVC更新日志

版本日志更新

php类库

更新日志

  • v2.9.4
    缓存层修复与增强:修复 cache() 助手 TTL 魔术值 3600 吞参 bug、Redis 驱动损坏数据反序列化崩溃、set/delete 返回值不一致及 File 驱动路径/并发/防御细节,新增 Cache::remember() get-or-set、store() 实例池化(免重复建连)与 Memcached 驱动
    [修改]config/cache.php[修改]startmvc/boot.php[修改]startmvc/core/Cache.php
    09/07/2026
  • v2.9.3
    修复了三类因查询构建器共享单例导致的状态污染:软删除条件在事务/无效方法调用后残留累积、原生SQL查询的绑定参数残留导致后续查询占位符错位。
    [修改]startmvc/boot.php[修改]startmvc/core/Model.php[修改]startmvc/core/db/DbCore.php
    09/06/2026
  • v2.9.2
    v2.9.2:修复聚合查询状态泄漏:executeAggregate(count/sum/max 等)在克隆体上执行后未重置原构建器,WHERE 条件、绑定参数与 cache 标记会泄漏到同连接的下一次查询——典型如 paginate 的计数与数据查询、连续两次不同条件的 count 会串扰出错误结果。现于聚合执行后对原构建器同步 reset 并清空 cache 标记;getSql 模式下同样补上 reset。
    [修改]startmvc/boot.php[修改]startmvc/core/db/DbCore.php
    09/06/2026
  • v2.9.1:Model 基类补齐 ORM 高频能力(自动时间戳/软删除/类型转换/最小集关联),全部按需声明、默认关闭,存量模型行为不变:timestamps 自动维护 created_at/updated_at;softDelete 将 delete 改写为标记更新并提供 withTrashed/onlyTrashed/restore/forceDelete,软删范围贯穿 find/findAll/paginate 及链式代理查询;casts 读取时转换 int/float/bool/json(数组写入由 Db 层自动 JSON 编码,双向对称);hasOne/belongsTo 关联在 find/findAll/paginate 自动批量装载(每条关联一次 IN 查询,无 N+1,关联行应用关联模型自身 casts,无记录挂 null)。同时统一 where 解析入口 applyWhere(修复主键值 0 被 empty 误吞)、save 更新不再把主键写进 SET 并在插入后回写自增 ID、删除从未使用的 dbConf 属性(连接配置统一由 Db 门面管理,模型实例化零 I/O)。
    [修改]startmvc/boot.php[修改]startmvc/core/Model.php
    09/06/2026
  • v2.9.0
    通过给文件缓存的 unserialize 加上 allowed_classes => false 白名单与数据格式校验、
    [修改]startmvc/boot.php[修改]startmvc/core/Exception.php[修改]startmvc/core/Logger.php
    09/04/2026
  • 通过给文件缓存的 unserialize 加上 allowed_classes => false 白名单与数据格式校验、
    [修改]startmvc/boot.php[修改]startmvc/core/Exception.php[修改]startmvc/core/Logger.php
    09/04/2026
  • v2.8.7
    取消输入端默认的 `htmlspecialchars` 转义(数组不递归、单引号不转义、双重转义隐患一并消除),统一为"输入不转义、输出用 `e()` 转义",显式开启 `filter` 时也会递归转义数组并以 `ENT_QUOTES/UTF-8` 处理。
    [修改]startmvc/boot.php[修改]startmvc/core/Http.php
    09/03/2026
  • v2.8.9
    让模板安全模式配置 tpl_safe_mode 真正生效(开启时剔除 {php}/{echo} 标签),并为 {include} 添加 realpath 路径穿越校验,涉及 View.php 和 config/view.php 两个文件。
    [修改]config/view.php[修改]startmvc/boot.php[修改]startmvc/core/View.php
    09/03/2026