点一下右上角,关心开源中国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和p22个系统分区,你能应用接下来的查询:
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\")\', \'2019\')->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方法对全自动多运用的支持
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。