StartMVC更新日志

版本日志更新

php类库

更新日志

  • v2.9.2
    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
  • v2.8.8
    Request::ip() 和 get_ip() 改为仅在 REMOTE_ADDR 命中新增的 trusted_proxies 配置时才从 X-Forwarded-For 右侧取真实 IP,否则一律返回 REMOTE_ADDR,杜绝伪造请求头。
    [修改]config/common.php[修改]config/view.php[修改]startmvc/boot.php
    09/03/2026
  • 取消输入端默认的 `htmlspecialchars` 转义(数组不递归、单引号不转义、双重转义隐患一并消除),统一为"输入不转义、输出用 `e()` 转义",显式开启 `filter` 时也会递归转义数组并以 `ENT_QUOTES/UTF-8` 处理。
    [修改]config/common.php[修改]config/view.php[修改]startmvc/boot.php
    09/03/2026
  • v2.8.6
    模板引擎实现了 XSS 输出转义:新增 e() 转义助手,{$var} 默认转义输出,原文输出改用显式的 {html $var}/{raw $var} 标签,并提供 auto_escape 配置开关。
    [修改]config/view.php[修改]startmvc/boot.php[修改]startmvc/core/View.php
    09/03/2026