淘宝客快递员引流方法,thinkphp最新版本是什么,thinkphp开发工具及搭建教程

软件更新丨ThinkPHP 公布 5.2 RC1 版本,诸多查询改善

点击右上方,关注开源中国OSC头条号,获取最新手艺资讯

5.2在经由几个月的测试版本迭代后,正式进入候选版本。之后的重点工作会是扩展以及文档的完善。固然,不清扫焦点另有微调的可能。

ThinkPHP5.2RC1版本继上个版本beta3版本公布以来,主要更新如下:

新特征

支持FIND_IN_SET查询

增添了新的查询表达式对FIND_IN_SET的支持,使用下面的查询即可:

Db::name('user')->where('group_list', 'find in set', 2)->select();

增添了分区查询支持

增添了对分区的支持(需要MySQL5.6+版本),例如你对user表分了p1和p2两个分区,你可以使用下面的查询:

Db::name('user')->partition('p1')->insert(['name' => 'think']);
Db::name('user')->partition(['p1', 'p2'])->select();
Db::name('user')->partition(['p1', 'p2'])->where('name', 'think')->update(['name' => 'thinkphp']);
Db::name('user')->partition('p1')->where('name', 'think')->delete();

增添了ON DUPLICATE UPDATE支持

支持ON DUPLICATE UPDATE,例如:

Db::name('user')->duplicate(['score' => 10])->insert(['name' => 'think']);

增添extra方式设置查询分外参数

extra方式可以用于CURD查询,例如:

Db::name('user')->extra('IGNORE')->insert(['name' => 'think']);
Db::name('user')->extra('DELAYED')->insert(['name' => 'think']);
Db::name('user')->extra('SQL_BUFFER_RESULT')->select();

新增单个数据改为使用更清晰和高效的INSERT SET语法,例如下面的查询

Db::name('user')->insert(['name' => 'think', 'score' => 100]);

现实天生的SQL语句是

INSERT INTO user SET `name` = 'think', `score` = 100

增添whereFieldRaw查询方式

该方式用于对字段使用SQL函数查询,例如:

User::whereFieldRaw('date_format("create_time", "%Y")', '2020')->select();
User::whereFieldRaw('date_format("create_time", "%Y")', '>', '2018')->select();

Query类的update方式支持获取模子的更新条件

现在可以直接使用模子的查询条件作为Db类update方式的数据更新条件,例如:

$user = User::find(1);
$user->field(['name'])->update(['name' => 'thinkphp']);

数据集类增添快捷查询(过滤)方式

thinkCollection类增添whereLike/whereNotLike/whereIn/whereNotIn/whereBetween/whereNotBetween等快捷方式,用于更利便的举行数据筛选而替换使用不够直观的where方式。

增添optimize:facade指令

为什么要做小程序,小程序开发的必要性解读

可以在内陆开发的时刻使用该指令为Facade类天生对应类的方式注释。你只需要在界说Facade类的时刻,在类的注释中添加 @mixin 选项,例如使用@mixin thinkDb注释后,使用optimize:facade指令后,就会在类的注释中自动天生thinkDb类的相关public方式注释,利便IDE自动提醒,每个类的方式返回值类型最好明确指定(没有返回值的则使用void),否则注释中会使用mixed返回类型。

增添新的表达式查询剖析扩展

增添了新的thinkdbExpression类(原来的Expression类已经更改为Raw类)用于查询表达式的扩展剖析,你只需要自界说一个表达式剖析类,例如:

<?php
namespace appcommonexpression;
use thinkdbExpression;
class Rlike extends Expression
{
/**
* 剖析查询表达式
*
* @param Query $query 查询工具
* @param string $key
* @param string $exp
* @param string $field
* @param integer $bindType
* @return string
*/
public function parse(Query $query, string $key, string $exp, string $field, int $bindType): string
{
if ($this->value instanceof Raw) {
$value = $this->value->getValue();
} else {
$value = $this->value;
}

return $key .' RLIKE ' . $value ;
}
}

现在我们就可以使用下面的查询语法了:

User::where('name', 'rlike', new appcommonexpressionRlike('^think'))->select();

提供了关闭事宜机制的方式

若是你完全不需要使用事宜机制,可以在入口文件中使用withEvent方式关闭事宜功效。

(new App())->withEvent(false)->run()->send();

不外值得提醒的是,新版的路由功效、多语言支持和请求缓存功效都是行使了事宜机制响应的。

用法调整

原来Query类的raw方式移动到Db类

虽然用法上没有改变,但Db::raw()方式的挪用效率会更高一些。或者你可以直接使用新的助手函数raw替换Db::raw。

原来的Expression类改为Raw类

原来的thinkdbExpression类更改为thinkdbRaw类,加倍贴切。

多对多关联的pivotDataName方式更名为name方式

使用加倍简练的name方式替换原来的pivotDataName方式。

废弃用法和参数

作废Query类的extend方式

作废了Query类的extend方式,若是需要扩展查询方式,建议自界说Query类并继续系统的thinkdbQuery类即可,然后在模子中界说query属性或者设置数据库毗邻的query参数为你的自界说类。

作废Request类的hook方式

由于不建议扩展Request类的方式,该方式已经在最新版本中作废。

作废URL参数模式设置

原来的URL参数模式设置参数url_param_type,统一使用参数/值的方式。

更新日志

  • 改善Url类build方式
  • 修复获取当前页码数据类型
  • 修正parseKey方式传入数值的情形
  • 改善optimize:config指令对declare声名的支持
  • 作废URL参数模式设置
  • 增添optimize:facade指令用于天生facade类的方式注释
  • 作废Query类的extend方式
  • 原来的Expression类更改为Raw类
  • 增添新的Expression类用于表达式查询扩展
  • Collection类增添whereLike/whereNotLike/whereIn/whereNotIn/whereBetween/whereNotBetween等快捷方式
  • Query类的raw方式移动到Db类
  • 作废Request类的hook方式
  • 修正Route::view方式
  • 优化模子获取器方式
  • 多对多关联的pivotDataName方式更名为name方式
  • Query类增添partition/duplicate/extra方式
  • 改善mysql驱动支持分区和duplicate以及分外参数
  • mysql驱动的insert方式改用更清晰的insert set语法
  • 修正Event类bind属性界说
  • 修正验证类的append一处bug
  • 改善Query类update方式支持读取模子的更新条件
  • 作废模子类的getUpdateWhere方式统一使用getWhere方式
  • 改善query类的fetchArray方式处置
  • 改善路由类作废app属性
  • 增添thinkfacadeRuleName类
  • 增添whereFieldRaw查询方式
  • 改善自动多应用名称获取
  • App类增添withEvent方式支持关闭事宜机制
  • 改善Dispatch类对var_dump的支持
  • 改善hasMany的withCount自关联
  • 修正纯数字检测参数类型转换问题
  • 修正raw助手函数
  • mysql支持find_in_set查询
  • 改善url方式对自动多应用的支持

本文来源于自互联网,不代表n5网立场,侵删。发布者:虚拟资源中心,转载请注明出处:https://www.n5w.com/189116.html

(0)
打赏 微信扫一扫 微信扫一扫
虚拟资源中心虚拟资源中心网络小白
上一篇 2020年6月23日 01:56
下一篇 2020年6月23日

相关推荐

联系我们

电话:

在线咨询:点击这里给我发消息

邮件:@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

公众号