当前位置: 首页 > 后端技术 > PHP

Laravel7.6发布了!!!PHP开发人员必看

时间:2023-03-29 22:19:55 PHP

Laravel团队发布了v7.6.0,其中包含13个新功能以及7.x分支的最新修复和更改:集合的新“until”方法JasonMcCreary贡献了Collection::until()方法,它可以循环遍历集合,直到元素满足条件,然后返回元素://Before[$before,$after]=$primes->partition(function($item){return$item<11;});$before->dump();//使用直到$passed=$primes->until(11)->dump();此方法使用闭包或值与集合进行比较。StringEmptyMethodsMarkvandenBroek为Stringable和HtmlString提供了一些方便的方法。首先,HtmlString::isEmpty()方法使我们更容易检测空实例:$string=new\Illuminate\Support\HtmlString('');//之前if(empty($string->toHtml()))//使用isEmptyif($string->isEmpty())其次,Mark还贡献了isNotEmpty()方法useIlluminate\Support\Stringable;(newStringable())->isNotEmpty();//false(newStringable('HelloWorld'))->isNotEmpty();//trueStringable类的Trim方法RyanChandler为Stringable类贡献了ltrim和rtrim方法,可以对字符串开头和结尾的字符进行裁剪:useIlluminate\Support\Stringable;echo(newStringable('HelloWorld'))->ltrim();//'HelloWorld'echo(newStringable('HelloWorld'))->rtrim();//'HelloWorld'echo(newStringable('/example/'))->rtrim('/');//'/example'特定路由忽略中间件@dsazup提供在定义路由时跳过中间件的功能:Route::get('/something')->skipMiddleware(VerifyCsrfToken::class)Route::get('/teams/create')->skipMiddleware(VerifyUserHasTeam::class)Http客户端:获取JSON响应作为对象一些api.wip')['result'];//使用json()$response=Http::get('some-api.wip')->json();$response['result']//新选项$response=Http::get('some-api.wip')->object();$response->result;组件别名由DriesVints提供为组件设置别名:我遇到了一个场景,我需要有一个基于组件别名的条件例如,当你有一个Svg组件并使用作为组件的别名,像这样:Blade::component(Svg::class,'heroicon-o-bell');这比更简洁。向Component类添加别名将为Blade组件添加许多新用途和可能性...在雄辩的集合中附加属性NielsFaurskov贡献了一个雄辩的集合方法append()可以将特定属性附加到集合中://BeforeLaravel7.6$collection->each(function($model){$model->append($attribute)});//附加方法$collection->append($attribute);支持Retry-After方法@RyanDaDeng贡献了一个Method级的支持,他可以补充队列监听器的retryAfter以适用于更高级的用例://监听器实现publicfunctionretryAfter(){//自定义retryAfter逻辑}支持Composer的新版installed.json格式JakubArbet支持Composer2新版snapshot功能(尚未稳定),但仍向后兼容旧版composer:vendor/composer/installed.json的格式在最新的snapshot版本中发生了变化composer的,从而打破了自动发现包的功能。此PR通过向后兼容早期版本的composer解决了这个问题。UUID支持更改MathieuTudisco支持在uuid列上使用change()方法,这以前会导致以下错误:请求未知列类型“uuid”。发行说明您可以在GitHub和7.5下面的.0和7.6.0](https://github.com/laravel/fr...上查看新功能和更新的完整列表。Laravel7.x的完整发行说明可以在最新的v7变更日志中找到:v7.6.0添加了新的Collection::until()方法(#32262)添加了新的HtmlString::isEmpty()方法(#32289、#32300)添加Illuminate\Support\Stringable::isNotEmpty()方法(#32293)添加ltrim()和rtrim()方法到Illuminate\Support\Stringable类(#32288)添加忽略中间件的功能(#32347,412261c)添加Illuminate\Http\Client\Response::object()方法(#32341)支持设置组件别名(#32346)添加Illuminate\Database\Eloquent\Collection::append()方法(#32324)BelongsToManypivot添加“between”语句(#32364)队列监视器支持retryAfter()方法(#32370)添加了对新版本composerinstalled.json的格式支持(#32310)添加了对数据库迁移文件的uuid更改支持(#32316)允许将资源保存到postgresqlbytea(#32319)修复phpredis中的*scan方法(#32336)修复Illuminate\Auth\Notifications\ResetPassword::toMail()(#32345)在Illu中调用setLocaleminate\Translation\Translator::__construct()(1c6a504)使用映射来防止在Illuminate\Http\Resources\Json\PaginatedResourceResponse::toResponse()中进行不必要的数组访问(#32296)当pivot未被修改时防止时间戳更新(#32311)修复Illuminate\Precision中的CURRENT_TIMESTAMP中的Database\Schema\Grammars\MySqlGrammar错误(#32298)修改HtmlString构造函数以添加默认值(#32290)使用BindingResolutionException来标记容器解析问题(#32349)Illuminate\Validation\Concerns\ValidatesAttributes.php::validateUrl()matcheswithSymfony/Validator5.0.7(#32315)DeprecatedAbandoningelixir函数(#32366)更多学习内容可以访问【与大厂比较】PHP架构师优秀教程完整目录。只要能读懂,就能保证你的薪水更上一层楼(持续更新中)。以上内容希望对大家有所帮助,很多PHPer在进阶的时候总会遇到一些问题和瓶颈。业务代码写多了,没有方向感,就不知道从哪里入手改进。我整理了一些这方面的资料,包括但不限于:高扩展、高性能、高并发、服务器性能调优、TP6、laravel、YII2、Redis、Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务,Nginx等知识点进阶进阶干货需要的可以免费分享给大家,需要的可以点击链接领取进阶PHP月薪30k>>>架构师成长之路【免费获取视频和采访资料】