📺 版本记录
<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
* 首次发布