ThinkPHP3.2完全开发手册

ThinkPHP系列开发手册在线版

更新日志

3.2.3更新日志

  • [新增] 增加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下调试模式自动开启区分大小写