ThinkPHP3.2 和 3.1.3 有哪些改进和改动

ThinkPHP3.2 和 3.1.3 有哪些改进和改动,第1张

核心版本去除了第三方扩展和驱动,仅保留核心类库和SAE模式支持。

ThinkPHP3.2.3版本是一个优化和修正版本,比3.2.2更加稳定、高效和安全,是一个推荐升级的版本,主要更新如下:

[ 数据库方面 ]

数据库驱动完全用PDO重写;

支持通用insertAll方法

改进参数绑定机制;

主从分布式数据库连接改进;

对Mongo的支持更加完善;

[ 模型方面 ]

模型类的诸多增强和改进;

增加聚合模型扩展;

支持复合主键;

多表 *** 作的支持完善;

模型的CURD *** 作支持仅获取SQL语句而不执行;

增加using/index/fetchSql/strict/token连贯 *** 作方法;

模型类的setInc和setDec方法支持延迟写入;

[ 安全方面 ]

I函数增加变量修饰符和正则检测支持;

支持全局变量过滤和Action参数绑定的变量过滤;

修正可能的SQL注入漏洞;

[ 其它方面 ]

支持全局路由定义;

增加插件控制器支持;

增加对全局和模块的模板路径的灵活设置;

日志目录分模块存放;

增加memcache Session驱动;

改进session函数的数组 *** 作;

修正一系列存在的问题;

[新增] 增加index连贯 *** 作方法,用于数据集的强制索引 *** 作

[新增] Model类增加using连贯 *** 作用于多表 *** 作

[新增] 增加strict连贯 *** 作,用于设置数据写入和查询是否严格检查是否存在字段 默认情况下 不合法数据字段自动删除,如果设置了严格检查则会抛出异常。 例如: $model->strict(true)->add($data)

[新增] 增加fetchSql连贯 *** 作

[新增] 添加yaml_parse_file()函数,解析yaml文件返回一个数组

[新增] 增加memcache Session驱动

[新增] 增加聚合模型,方便一对一的关联数据表 *** 作

[新增] 新增TMPL_PATH常量支持 可以全局改版模板目录到模块目录之外

[新增] 增加Lite模式Db类,仅支持原生SQL *** 作

[新增] 数据库调试增加单独的配置参数 DB_DEBUG(如未设置依然取调试模式常量 APP_DEBUG)

[新增] 新增框架核心葡萄牙语言包

[新增] 增加COOKIE_SECURE和COOKIE_HTTPONLY配置参数

[新增] MySQL驱动增加ON DUPLICATE KEY UPDATE功能

[改进] Db类和数据库驱动类完全基于PDO重写

[改进] 添加全局过滤机制(默认关闭)

[改进] I函数增加修饰符功能和正则检测支持

[改进] 采用主从分布式数据库时,从数据库连接失败自动连接主服务器

[改进] 增加Model类对复合主键的支持

[改进] 改进Mongo模型和驱动类,使用更加方便

[改进] 改进session函数删除 *** 作支持数组

[改进] 改进session函数对多维赋值的支持

[改进] 改进数据库字段缓存的文件标识 加上数据表前缀,避免不同前缀的表产生混淆

[改进] 针对数据库视图无主键的问题,使用默认id作为主键,与未开启DB_FIELDS_CACHE时行为一致

[改进] SAE模式惯例配置增加上传驱动设置

[改进] 改进参数绑定机制

[改进] 确保使用参数绑定后日志中生成sql语句的准确性

[改进] 模型类的setInc和setDec方法支持延迟写入,同时取消高级模型的相关方法

[改进] 日志写入的时候自动创建目录

[改进] 改进SQL缓存

[改进] 优化缓存队列功能

[改进] 路由的请求类型定义不区分大小写

[改进] 数据库驱动增加通用insertAll方法支持

[改进] 完善 url的验证正则

[改进] 单字母函数返回值类型修正以及一些拼写错误修正

[改进] 自动创建模型模块的父目录 直接调用\Think\Build::buildController和buildModel的情况下创建目录

[改进] 日志驱动增加自动目录创建支持

[改进] 自动生成的目录结构增加模块的缓存目录

[改进] mysql存储过程支持完善

[改进] Db类改进对多表更新和删除的支持,多表删除支持USING和JOIN *** 作

[改进] 改进parseLock的位置

[改进] Db类的update和delete方法增加多表 *** 作的支持

[改进] 改进CURD *** 作 可以直接返回sql语句而不真正执行。

[改进] 插件控制器的命名空间可定义 不再局限于模块下面 增加 ADDON_PATH 用于定义插件目录 默认位于 应用目录下面的Addon

[改进] 改进静态缓存读取的有效判断对sae的支持

[改进] 日志目录分模块

[改进] 模型类的getField方法改进 支持在字段名中使用函数

[改进] 改进Db类的parseWhere方法

[改进] 改进模型的page和limit方法 改进分页类

[改进] 改进配置文件自动生成

[改进] 完善ShowPageTraceBehavior一处函数调用大小写规范

[改进] U函数支持多级控制器

[改进] send_http_status函数增加状态

[改进] 允许在项目中定义 APP 常量

[改进] 改进定义TMPL_PATH后的模板路径定义

[改进] Image类的imagick驱动save方法增加quality参数 用于图片质量设置,默认值为80

[改进] 改进Image类的JPEG图片生成质量

[改进] Gd库驱动类改进

[改进] 改进T函数对TMPL_PATH常量定义的支持

[改进] 改进I函数对path.0的支持

[改进] 改进关联模型

[改进] 改进dispatch_jump模板

[改进] 更新api模式支持配置文件的后缀定义

[改进] 改进Model类的getModelName方法对多层模型的支持

[改进] 改进cookie函数对secure和httponly的支持

[改进] 改进模板标签对命名空间的支持,写法 {$var|Org\Util\String::rand}

[改进] 改进数据表自动识别规则正则规则 可以正确识别带有数字的数据表

[改进] Model类的cache方法使用改进 cache(10) 等同于 cache(true, 10)

[修正] 修正ShowRuntime行为扩展

[修正] 修正Model类的add和addall方法中的_facade和_parseOptions的调用顺序问题

[修正] 修正使用数组方式动态指定表名后的BUG

[修正] 修正ChromShowPage行为扩展

[修正] 修正自定义公共模块路径时,加载公共模块类库失败

[修正] 修正参数绑定的一处判断

[修正] 解决PDO参数绑定后的获取最终SQL语句问题

[修正] 修正开启布局后show方法的问题

[修正] 解决调用trace()无法返回trace日志问题

[修正] 修复mongo出现错误输出的问题

[修正] 修正页面Trace的日志保存

[修正] 修正Model类的save方法

[修正] 修正令牌验证没有设置TOKEN_NAME的问题

[修正] 修复RestController中请求资源类型总是为html的bug

[修正] 修正Model类的getField方法的一处变量冲突问题

[修正] 修正Mongo驱动的page处理

[修正] 修正 extract方法 在分解变量的时候 可能导致变量被覆盖的问题

[修正] 修正Imagick类库

[修正] 修正页面trace插件开启PAGE_TRACE_SAVE后出错的问题

[修正] 修正controller方法 对不使用命名空间的支持

[修正] 修正Image类的save方法支持图片质量

[修正] 修正高级模型的乐观锁功能

[修正] 修正I函数通过FILTER_VALIDATE_EMAIL方式传入常量过滤的一处错误 并且过滤参数支持数组

[修正] 修正GIF类的架构函数

[修正] Cache类一处常量错误修正

[修正] 修改自动生成的配置文件支持CONF_EXT定义

[删除] 去掉多余的URL_404_REDIRECT配置参数

3.2.2 更新日志

[增加]配置文件增加yaml/json/xml/ini/自定义格式支持

[增加]增加load_config函数用于加载配置文件

[增加]增加CONF_EXT和CONF_PARSE常量,用于定义配置文件后缀及解析方法

[增加]模块增加状态配置文件

[增加]cookie函数增加httponly参数支持

[增加]增加COOKIE_HTTPONLY配置参数

[增加]增加插件的控制器访问支持

[增加]增加CONTROLLER_PATH常量用于定义控制器的命名空间路径

[增加]添加VAR_ADDON配置参数 用于设置默认的插件控制器命名空间变量

[增加]dispatcher类增加getSpace方法用于获取控制器的命名空间路径

[增加]I函数增加path和data类型变量的用法

[增加]引入composer支持(还需要完善)

[增加]xcahe和wincache驱动增加clear方法

[增加]自动生成机制支持多个模块的控制器和模型类的批量生成

[修正]修正上传类不能动态改变rootPath的BUG

[修正]修正RestController类的执行顺序

[修正]修正Model类的参数绑定的一处BUG

[修正]修正CronRun行为扩展一处错误

[修正]修正GIF类

[修正]修正rest控制器的encodeData方法

[修正]修正ViewModel可能因空格导致Order方法错误的bug

[修正]修正MongoModel类的写入数据的自增获取

[修正]修正第三方模板引擎驱动类

[修正]修正自动加载可能的一处导致重复加载的问题

[修正]修正__CONTROLLER__ 在URL不区分大小写情况下的获取

[修正]修正Route类中请求类型判断错误的bug

[修正]修正mysqli驱动的free方法

[改进]改进CronRun行为扩展

[改进]TOKEN_NAME 未设置时使用默认值__hash__

[改进]模类的_after_insert回调返回false后直接返回

[改进]Model类的save方法 如果data为空则不执行

[改进]Model类的delete方法 如果条件为空 则不执行删除 *** 作

[改进]改进获取模块方法,支持驼峰法模块命名

[改进]改进模型的查询方法对表前缀的支持,使用当前模型设置的表前缀

[改进]视图模型的视图定义中的_table属性和关联模型中的relation_table 支持 __TABLE_NAME__定义方式

[改进]Model类的query和execute方法支持 __TABLE_NAME__定义方式

[改进]改进PDO驱动对pgsql字符转义的支持

[改进]改进Cookie函数对名称中包含“.”的支持

[改进]改进Sae上传驱动 增加file['url']信息存储

[改进]Page类添加默认的listRows值

[改进]改进IS_CGI常量的判断,支持fcgi

[改进]改进Db类的multiConnect方法 避免切换数据库的时候 配置数据被缓存

[改进]改进Db类对传入的参数 如果未设置数据编码,设置默认的编码为utf8

[改进]改进B方法支持对行为和扩展类的调用,需要传入完整的类名

[改进]改进验证码类 添加验证成功后是否重置session的参数 reset 默认为true

[改进]改进session和cookie函数,支持获取全部

[改进]调试模式下,错误的查询条件和非法数据写入会抛异常

[改进]改进Model类的getField方法

[调整]设置VIEW_PATH后参数后无需再定义模块子目录

[调整]为了避免和函数规则冲突,规则路由排除分隔符改为“-”

3.2.1 更新日志

[增加] 增加Rpc控制器支持

[增加] 添加原来的部分扩展类库

[增加] 增加RestController

[增加] 添加Boris行为扩展

[增加] 增加Boris第三方类库

[增加] 增加BIND_MODULE BIND_CONTROLLER BIND_ACTION 常量定义 用于在入口文件中绑定

[增加] 增加 module_check 标签位

[增加] 增加buildLite行为 用于根据当前环境生成运行时lite文件 可以替换框架入口文件运行,提高效率

[增加] Think类增加getMap方法

[增加] C函数增加默认值功能 可以是获取配置参数的时候,当没有定义的时候获取传入的默认值

[增加] 增加Yar扩展支持

[增加] 添加jsonRPC扩展

[增加] 增加Api应用模式扩展和Mode扩展目录

[增加] 添加第三方模板引擎

[增加] 支持 *** 作方法绑定到类

[增加] 增加Think\Auth类

[增加] 增加Hprose控制器和第三方类库包

[增加] 增加CONF_PATH常量定义

[增加] 应用和模块增加自动读取当前应用模式配置文件的功能

[修正] 修正正则路由的一个函数处理的bug

[修正] 修正模板引擎类的一处bug

[修正] 修正L函数的一处错误

[修正] 修正驱动类一处错误

[修正] 修正MongoModel一处错误

[修正] 修正Verify类对多个验证码同一个页面显示的bug

[修正] 修正找不到Log类的错误

[修正] 修正模型类的一处bug

[修正] 修正session函数一处警告错误

[修正] 修正U函数的一处警告错误

[修正] 修正compile函数的一处bug

[修正] 修正验证码的背景图片功能

[修正] Think\Image类常量修正

[修正] 修正Image类的架构方法错误

[修正] 修正Mongodb数据库驱动

[修正] 修正trace方法在CLI下面中文输出乱码

[修正] 修正控制器类当调用不存在的方法的报错

[改进] 改进 *** 作方法的名称识别

[改进] 改进数据库驱动 支持不同的链接指定不同的charset参数

[改进] 改进get_client_ip函数

[改进] 改进L函数支持传入变量

[改进] 改进PDO驱动 当版本低于PHP5.3.6的时候禁用模拟预处理语句

[改进] 调整dispatcher类的模块、控制器和 *** 作名获取方法

[改进] 页面trace扩展CLI下面不执行

[改进] 优化trace方法

[改进] 解决因配置文件加载顺序错误导致在SAE环境中运行出错的问题

[改进] 改进Storage类

[改进] 优化load_ext_file函数

[改进] Behavior类简化(下一版本可能会废弃)

[改进] 核心行为类简化取消对Behavior的继承

[改进] C函数并入系统函数库文件

[改进] union连贯 *** 作方法 字符串用法支持 TABLE_NAME 方式替换

[改进] 改进Jion和table连贯 *** 作方法,当使用TABLE_NAME解析的时候支持动态指定的表前缀

[改进] 优化U函数

[改进] 路由类改进

[改进] 改进路由的闭包支持 闭包函数如果返回布尔值 则继续执行后续 否则中止执行

[改进] 应用模式定义文件移动到MODE_PATH目录下面 便于管理

[改进] 默认URL不区分大小写

[改进] 改进路由闭包定义

[改进] 改进路由的额外参数传入

[改进] 重写查询缓存功能

[改进] 关联模型修改

[改进] Image类水印生成支持透明度参数

[改进] 改进Image驱动

[改进] 验证码类改进

[改进] 改进上传类及驱动

[改进] session驱动类接口改进 无需定义execute方法

[改进] 静态缓存仅在get请求下生效

[改进] 改进静态缓存行为

[改进] 语言文件更新

[改进] Storage类的SAE驱动更新

[改进] 英文语言包修正

[改进] 改进PDO驱动

[改进] 默认生成的测试控制器规范改进

[删除] 废除APP_FILE_CASE参数配置 改为Windows下调试模式自动开启区分大小写


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6696455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存