📺 版本记录

<br/> >d 原84PHP即将更名为APIPHP,正在做最后测试。 预计于2024年10月发布,APIPHP框架源码目前位于develop分支:[https://github.com/open-bst/APIPHP/](https://github.com/open-bst/APIPHP/) >i 本文档的最新修订日期是: > **2024-05-07** # <font color="#ff6600">1.0.0</font> <font color="#0099ff">`新增/Add`</font> * 新增Hook机制; * 将入口文件index中的部分功能整合进新模块Initial; * 快捷传参新增简写模式; * 在线文档快速入门中新增生命周期说明; * Vcode模块可以指定验证码图像背景颜色; * Img模块新增对图像多次处理功能; * Db模块新增全表修改锁定功能; * Db模块新增查询条件值缺失报错; * Db模块中支持将传入的数组自动转换为JSON字符串; * Db模块index参数支持多表、多索引、多条件; * Db模块中表名支持使用别名; * Db模块中支持在字段中指定数据库; * Db模块中支持使用数据库函数、运算符和关键字; * Db模块新增返回最终执行前的SQL功能; * Db模块新增指定数据类型的功能; * Page::get()方法返回值新增字段; * 兼容Composer; * Db模块中可以指定绑定参数的数据类型; * Data::get()中新增参数; * Db模块中新增参数json用以自动转换结果为数组; * 新增Redis_模块; * 命令行执行新增query参数; * 新增Filter::check(); * 新增Filter::lastCheck(); * 新增Upload模块; `调整/Change` * 框架更名为APIPHP; * 运行环境要求提升至PHP8.3+; * 框架常量命名方式调整; * 不再提供强制HTTPS功能,请使用服务器伪静态设置或CDN代替此功能; * 模块配置文件中的格式进行调整; * Setting模块使用了新的参数组成; * 新增《模块开发规范》; * 框架的基础配置文件从base.php整合入模块Initial的配置文件内,并调整了index.php的代码; * 框架核心配置中移除了timeLimit配置项; * 当缓存时间小于1时,将不会自动重建缓存; * 出于安全考虑,不再内置Pay及Sms模块; * Db模块事务启动指令改为start; * 移除了Ip模块的所有配置项及配置文件; * Page::get()方法返回值字段更名; * 移除对IIS伪静态支持; * 新增核心配置项composer; * Db模块中公共参数order对应的中文参数名调整为“排序”; * Db模块中公共参数condition及limit的参数定义发生改变; * Db模块中的所有参数,均不再同时支持Array和String两种类型; * Db模块中other()方法更名为raw()方法; * Db::update()方法中删除参数auto_operate; * Db模块中仅在raw()方法中保留参数sql和参数; * Filter::byMode()已废弃; * Filter::byData()已废弃; * Tool::uuid()改变了算法和参数名称; * Data模块有关Redis操作的相关改动; * Data模块中的Redis操作现在依赖于Redis_模块; * Data模块配置文件调整; * Tool::getHeader()已废弃; * 移除了Ftp模块; * Vcode模块更名为Captcha; * Data模块新增hash存储模式; <font color="#c7254e">`修复/Fix`</font> * Vcode模块无法显示验证码的问题; * Data模块调用Redis类报错的问题; * Filter::byData()方法报错的问题; * Db::acid()方法报错问题; * Load::down()文件路径错位问题; * Db模块中,多个条件中含有相同字段名时语句失效的问题; * Tool::send()参数ssl默认值错误问题。 # 0.6.1 <font color="#0099ff">`新增/Add`</font> * Tool::send()新增发送自定义字符串; * 文档新增有关伪静态规则部署的详细说明; * Db模块的所有方法均支持临时改变所连接的数据库。 `调整/Change` * 暂无。 <font color="#c7254e">`修复/Fix`</font> * 修复伪静态规则中的错误; * Db::choose()无法使用快捷传参的错误; * Ip模块的配置项拼写错误。 # 0.6.0 <font color="#0099ff">`新增/Add`</font> * 首个面向API模式的框架版本发布; * 全部网络通信均使用cURL; * 根据模块自动引入对应配置文件; * 捕获Fatal级别错误; * 引入命名空间。 `调整/Change` * 架构重大改变,专注于API模式应用开发,原静态模板相关功能已删除; * 错误码重新排序调整; * 框架代码遵循PSR-4; * 配置文件变量名的规范化; * Db模块不再支持读写分离,请使用数据库中间件完成; * 部分模块及方法名变更; * 精简部分文件代码。 <font color="#c7254e">`修复/Fix`</font> * 修复已知错误。 # 0.5.1 <font color="#0099ff">`新增/Add`</font> * 报错堆栈指示; * Session :: Csrf() 新增返回值; * 框架报错时,将在报错模板{$Code}中返回错误码; * 常量IntRuntime; * 使用PDO作为底层驱动,用以连接数据库的Db模块,并支持事务操作; * Wrong模块新增配置项CodeReplace,用以替换错误代码; * 框架常量FrameworkVersion,用以输出框架版本号; * 错误页模板变量FrameworkVersion,用以输出框架版本号; * 用以校验数据的Filter模块; * 用以获得Header中指定字段的值的Tool :: GetHeader() 方法。 `调整/Change` * Wrong :: Report() 已调整参数为快捷传参模式; * Mysql :: Sum() 中的sum参数,已调整为Array类型; * Mysql模块将计划废弃,将在6.x版本中删除,且不再增添新功能。请使用 Db 模块代替; * Receive模块将计划废弃,将在6.x版本中删除,且不再增添新功能。请使用 Filter 模块代替; * Page模块使用Db模块作为依赖; * 优化整体代码; * 删除M.15.0错误码; * 更新了样例文件; * 删除了核心配置项XPoweredBy。 <font color="#c7254e">`修复/Fix`</font> * Wrong :: Report() 中code参数影响HTTP响应码的问题; * Wrong模块无法写入日志; * Vcode :: Base() 中的参数无效的问题; * Mysql :: Sum() 中的sum参数类型为String时,出现错误; * Wrong :: Report() 展示报错模板页错误的问题; * Mysql模块中潜在的安全问题。 # 0.5.0 >d 此版本改动较大且不与低版本兼容,请先阅读入门指南中的 <font color="#c7254e">`升级`</font> 一节,再通过替换全部文件的方式升级。 * 调整了报错页模板文件的名称和位置; * 修复Session模块中影响图像生成的代码错误; * 调整Vcode模块Base方法,使其返回验证码文本; * 修复了Wrong模块对AJAX请求识别错误的问题; * 新增用以缓存数据的Data模块; * 修复Setting模块中Set方法出错的问题; * 修复Page模块返回统计信息不准确问题; * 移除模板文件起始的exit;#标记,提高代码可移植性; * 新增Log模块中输出累积日志的Get()方法; * 新增Log模块中输出累积日志的Output()方法; * 移除Log模块Write方法; * 新增存放库文件的目录/Lib,提升开发效率和安全性; * 调整模块语法为标准的静态方法调用方式Class :: function( ); * 使用autoload代替原模块引入逻辑; * 精简代码; * 新增常量URI; * 调整入口文件逻辑,非调试模式下也将进行自动编译; * 取消Cache模块中,编译时必须处于调试模式的限制; * 新增Cache模块中有关缓存有效期的ExpTime配置项; * 变更了Cache模块中的Compile方法内的force(强制编译)参数的定义; * 修复Cache模块的其他错误; * 原Tool模块中的Token方法,迁移至新增的Session模块中; * Session支持Redis及memcache存储; * Session支持自定义部分配置; * 支持以命令行模式运行,并修复了此模式下框架报错的问题; * 修复了Setting模块的潜在错误; * 新增Data模块; * 移除Receive模块对Referer的校验; * 新增了Wrong模块对报错样式的配置项; * 新增了独立的《升级指南》; * 调整了文档排序; * 调整了报错页样式文件的文件名; * 不再区分基础模块与可选模块; * 原Receive模块中的FromCheck方法,迁移至新增的Session模块中,并更名为Csrf方法; * 新增了Session模块Csrf方法中,对指定的Token进行校验的功能; * 错误码的调整。 # 0.4.0.2 * 优化了Receive模块,并修正了Header方法; * 修复了Cache模块中ReBuild方法报错C.0.5的问题; * 修复了Mysql模块中读写分离相关的潜在错误,并优化精简了代码; * 修复了Mysql模块中多字段排序时报错的问题; * 修复了Img、Vcode模块中在PHP7.4中,有关16进制转换报错的问题; * 调整了默认页样式; * 原Wrong模块中的ErrorCode命名规范为StatusCode; * 报错页面中,非Ajax请求则响应友好网页,否则响应JSON; * 取消了增量升级包,升级直接覆盖/Core即可。 # 0.4.0.1 * 修复了Mysql模块Other()方法报错; * 清空了内置的安全码; * 修复了Vcode模块报错,并支持自定义噪点颜色。 # 0.4.0 >d 此版本改动较大且不与低版本兼容,请先阅读入门指南中的 <font color="#c7254e">`升级`</font> 一节,再通过替换全部文件的方式升级。 * 文档全部调整为在线文档 * 新增了基于URL参数的路由解析; * 新增“快捷传参”模式,除Wrong模块的Report方法外,所有模块方法均支持; * 调整了默认页的样式; * 改进了命名规则,修正了部分变量名和函数名; * 调整Common.php中的配置项为数组模式; * 修复了部分模块中fopen的句柄没有被关闭的错误; * 重构Mysql模块,优化和修复了诸多问题; * 调整了报错方式,全部以JSON形式报错; * 调整报错内容为错误码报错,并增加出错文件和行号; * 调整了路由规则; * 重构Cache模块,新增失效缓存清除机制; * 修改了部分报错提示的文字内容; * 调整了模块配置目录名称为“Config”,并移动至站点根目录下; * 调整了SESSION定义调试模式的影响范围; * 解耦了调用方法不存在时的报错方法; * 调整了模块配置项的配置方式,避免变量污染; * 优化了Receive模块代码; * 修改了Dir模块部分方法的返回值; * 重构Img模块; * 新增Ip模块Clean方法中,指定黑白名单的功能; * 在Mail模块中的Jsend和Ssend方法中,删除了连接信息参数; * 在Mail模块中的Jsend方法中,新增指定超时时长的参数; * 在Ftp模块中的Up和Down方法中,删除了连接信息参数; * 在Ftp模块中的Up和Down方法中,新增指定超时时长的参数; * 在Pay模块中新增指定超时时长的配置项; * 在Send模块中的Post和Get方法中,新增指定超时时长的参数; * 在Tool模块中删除了CC和Mtime方法; * 重构了Setting模块; * 在Sms模块中新增指定超时时长和地域的配置项; * 更新了Tool模块配置项的定义; * 重构了Tool模块Html方法,增强了安全性; * 新增Mysql模块的各方法中,支持附加自定义的语句; * 新增Mysql模块的Select方法中,多条件查询; * 新增Mysql模块的SelectMore方法中,支持指定Field查询; * 新增Mysql模块的各方法中,支持desc与order绑定; * 移除Mysql模块的各方法中的like参数; * 修正了Mysql模块的各参数规范; * 模块不再单独设置版本号; * 新增Receive模块中Post和Get方法内自动URL解码功能; * 新增了Receive模块中的Header方法; * 删除了Action目录; * 对Cache模块Compile方法修改了参数; * 前端模板、前端语法更名为静态模板、模板语法; * 重构Load模块Up方法,新增对于多文件上传支持; * 改进了Load模块Up方法随机文件名的算法; * 将原Db模块的所有方法归入Mysql模块,并删除Db模块; * 新增Send模块中,支持文件上传的Posts方法; * 对Send模块中的公共参数的必传性做了调整; * 将Load模块中Up方法中,Path参数的基准目录设置为根目录。 * 增加了对各模块中又换路径参数的兼容性; * 新增Img模块中,合并图片的Merge方法; * 优化了Mail模块的Ssend方法; * 新增了核心配置文件中,始终返回200状态码的配置项; * 将核心配置文件中,SESSION自动开启的配置项调整为FALSE; * 将缓存路径由/Cache调整为/Temp/Cache; * 将/Core/Common.php移动至/Config/Common.php; * 新增日志模块Log,并删除了核心配置文件中的RequestLog配置项; * Wrong模块已支持写入日志; * Mysql模块已支持写入日志; * 修复了报错敏感信息泄露的问题; * 不再支持通过SESSION进行配置项的临时调整,替代方案由Setting模块的Change()方法提供; * 优化了Cache模块运行速度; * 新增常量Runtime; * 框架基本去除对SESSION的依赖; * 优化了IP模块的部分方法,并修正了错误; * 新增了Tool模块下生成UUID的方法。 * 调整了模块语法 # 0.2.2.1 * 修正了默认Hello World文件的错误(感谢@lazy); * 修正了分页模块文档的内容错误(感谢@lazy); * 官网新增示例demo用于入门学习。 # 0.2.2 * 修复了在PHP5下set_error_handler报错的问题; * 修复了记录客户端信息时HTTP_REFERER报错的问题; * 修复了Sms模块提示文件缺失的问题; * 新增了Mysql模块下的Sum()方法; * 对说明文档重新排版,更易于阅读。 # 0.2.1 * 新增对Wrong模块的报错信息进行URL编码; * 新增Wrong模块的配置文件中的JumpURL配置项; * 新增编译时检查模块文件是否存在的功能; * 新增了Tool模块中获取毫秒时间戳的MTime()方法; * 新增Mysql模块Total()中的分组统计功能; * 新增了Receive模块Post()和Get()方法中校验长度的功能; * 新增了通过SESSION定义大部分模块的配置项的功能; * 新增了开发环境下的伪静态规则; * 修复了在部分虚拟主机下set_time_limit报错的问题; * 修复Mysql模块中使用指定索引报错; * 修复伪静态规则导致Apache返回304缓存标记; * 修复了Pay模块微信支付(R)可能出现的网络环境异常问题; * 从此版本开始,提供增量更新压缩包; * 入门指南和基础模块说明的修正。 # 0.2.0 * 重要变动:编译模块解耦,并删除了编译模块配置文件中的模块类别配置项; * 基于编译模块的解耦,部分基本模块调整成为了可选模块,详情请参阅《基础模块说明》; * 原Sql模块更名为Mysql; * Page模块做了较大改动,且与原Page模块不兼容; * 新增了临时调试模式,即$_SESSION['DebugMode']; * 新增了编译模块对于模块名的容错处理; * 新增了在核心配置文件中设置时区的功能; * 新增了在核心配置文件中设置脚本超时时限的功能; * 新增了HttpError页面执行全局编译的功能; * 新增了Setting模块,用以完成各模块配置项的修改和读取; * 删除了入门指南中“权限”一节的内容; * 恢复了对原生PHP语法的支持; * 修复了压缩html时js注释未被清除的问题; * 修复了文档的内容错误; * 优化了编译模块; * 从下一个版本开始,将提供增量升级的压缩包进行覆盖升级。 # 0.1.3 * 入门指南中新增了权限等部分的内容; * 修复了在IIS10环境下,自动编译出现权限不足的问题; * 修复了Db、Page模块说明文档中的错误; * 修复了Page模块在特殊情况下逻辑错误的问题; * 新增了Core/Initial.php,用以完成初始化操作; * 新增了一个模板编译规则{? }; * 新增了Session模块下防CC攻击功能; * 新增了基于IP(IPV4)地址的访问控制功能; * 新增了对IP(IPV4)黑白名单的操作模块; * 新增了对客户端信息记录的功能; * 新增了错误页中,能够取消自动跳转的功能,并将倒计时调整为7秒; * 新增了示例页面、默认报错页面在IE6-9下的样式兼容性; * 新增了代码压缩的功能; * 新增了Apache下的伪静态规则; * 将根目录下的initial.php更名为compile.php; * 调整了IIS伪静态规则; * 调整了各文档中代码部分的样式; * 调整了Receive模块配置文件中防注入的规则; * 调整了各模块引用配置文件的路径找寻方式; * 调整了缓存编译时的引用各模块的路径找寻方式; * 调整了编译模块中读取模板文件时使用的权限; * 调整了示例Hello World页面中的内容; # 0.1.2.2 * 本次更新为紧急错误修复。修复了Session未能自动开启的问题; # 0.1.2.1 * 增加了Sql模块中,对多个条件情况下,设置条件组的功能; * 修复了Receive模块FromCheck方法中,报错内容出现歧义的问题; * 修复了潜在的Vcode模块无法正常运行的问题; * 修复了Page模块,当前页码为0的问题; * 新增了Header头中对于X-Powered-By的隐藏; * 新增了出现错误页之后,5秒自动跳转的功能; * 更新了文档,并修正了文档中的一些错误; * 新增了开启全局SESSION功能; * 原Session模块下的Token方法,现已更改至Tool模块下,且Session模块不再被编译; # 0.1.2 * 修复了Cache模块无法编译Sms模块的问题; * 增加了对Sql模块各方法中,WhereOp参数容错的功能; * 增加了Sql模块报错时,在调试模式下显示出错Sql语句的功能; * 增加了Error模块中Report方法的第三个参数OnlyMessage,即仅输出报错信息而不输出Html的功能。详情请查阅Documents目录下的BaseModule.pdf(基础模块说明); * 修复了Sql模块中方法列表内Delete方法被错写成Del的问题; * 修复了Sql模块中,WhereOp参数的解析逻辑; * 增加了Sql中的Other方法,执行自定义的SQL语句。详情请查阅Documents目录下的BaseModule.pdf(基础模块说明); * 将Error模块中原FrameworkError模块调整为Wrong; * 更新了文档,并修正了文档中的一些错误; # 0.1.1.1 * 修复了引入多文件时,当多文件中存在相同模块导致报错“类已经存在”的潜在Bug; * 取消了先更新缓存文件对应的模板文件,再更新全域文件的流程,改为直接更新全域文件; * 修复了当系统时间不正确时,导致缓存机制失效的问题; * 在Core/Common.php中加入了ob_start(),开启缓冲区控制; * 修复了Vcode模块在Mac机器上无法工作的问题; * 增加了Http4XX、5XX报错的友好界面文件; # 0.1.0 * 首次发布