StartMVC更新日志

版本日志更新

php类库

更新日志

  • v2.9.6
    把请求上下文(模块/控制器/方法)从"只写一次的全局常量"迁到了 Request 对象上贯穿全程,顺带修掉 lang() 每次重读盘且语言包缺失就整站 500 的隐患、清掉 4 处死代码
    [修改]config/middleware.php[修改]startmvc/boot.php[修改]startmvc/core/Controller.php
    09/11/2026
  • v2.9.5
    Request 对象贯穿全程的重构
    [修改]app/middleware/CsrfMiddleware.php[修改]app/middleware/LogMiddleware.php[修改]startmvc/boot.php
    09/11/2026
  • 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