Laravel8有哪些新特性
这篇文章主要介绍了Laravel 8有哪些新特性,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
创新互联建站是专业的弥勒网站建设公司,弥勒接单;提供网站设计、网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行弥勒网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
Laravel 8 已于昨天正式发布(非 LTS 版本),本次主版本发布引入了 Laravel Jetstream、模型类目录、模型工厂类、迁移文件压缩、频率限制优化、时间测试辅助函数、动态 Blade 组件等新特性。
注:有同学反馈为什么 Laravel 版本发布这么频繁,那是因为从 Laravel 6 开始引入了新的版本发布周期,具体可参考学院君之前发布的这篇教程:Laravel 6 之后新版本的发布周期介绍。
下面我们一起来速览下这些新特性:
Laravel Jetstream
Laravel Jetstream 是在之前版本上进行优化和全新设计的 Laravel UI 脚手架代码:
其中包含了登录、注册、邮箱验证、双因子认证(2FA)、会话管理、基于 Laravel Sanctum 的 API 支持、以及可选的团队管理等功能。
Jetstream 使用的 CSS 框架是 Tailwind CSS,并且提供了 Livewire 和 Inertia 脚手架选项,你可以任选其一进行前端组件开发。
模型类目录
Laravel 8 终于在 app
目录下引入了 Models
子目录来存放模型类文件,所有通过 make:model
命令生成的模型类以后默认都会存放在这个目录下;不过,如果你选择删除这个目录,新生成的模型类将仍然存放到 app
目录下。
模型工厂类
从 Laravel 8 开始,Eloquent 模型工厂将基于类进行管理,从而支持不同工厂之间的关联关系,新的模型工厂调用语法如下所示,相比之前可读性更好:
use App\Models\User;
User::factory()->count(50)->create();
// 使用工厂类中定义的 "suspended" 关联方法
User::factory()->count(5)->suspended()->create();
迁移文件压缩
随着应用功能越来越复杂,需要创建越来越多的数据库迁移文件,可能多至上百个,管理起来有点麻烦,从 Laravel 8 开始,你可以将它们压缩到单个 SQL 文件中,该 SQL 文件会在运行迁移命令之前执行,然后再执行其他未压缩的迁移文件。该功能可以有效降低迁移文件的数量,并且在测试时提升性能。
优化访问频率
Laravel 8 优化了之前已经存在的访问频率限制功能 —— 支持向后兼容 throttle
中间件,并且提供了更高的灵活性。Laravel 8 引入了一个可以通过门面定义的访问频率限制器:
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;
RateLimiter::for('global', function (Request $request) {
return Limit::perMinute(1000);
});
正如你所看到的,for
方法中持有 HTTP 请求示例,因此你可以完全动态控制请求频率。
时间测试辅助函数
在 Laravel 中,一直都可以通过 PHP Carbon 库完全控制时间的修改,Laravel 8 则在此基础上往前更进一步 —— 在测试时使用一个更加方便的辅助函数来操作时间:
// 穿越到未来...
$this->travel(5)->milliseconds();
$this->travel(5)->seconds();
$this->travel(5)->minutes();
$this->travel(5)->hours();
$this->travel(5)->days();
$this->travel(5)->weeks();
$this->travel(5)->years();
// 穿越到过去...
$this->travel(-5)->hours();
// 穿越到指定时间...
$this->travelTo(now()->subHours(6));
// 回到现在...
$this->travelBack();
使用这些方法时,时间会在每个测试之间重置。
动态 Blade 组件
有时候你可能需要在运行时动态渲染 Blade 组件,Laravel 8 提供了一个
组件来实现这个功能:
感谢你能够认真阅读完这篇文章,希望小编分享的“Laravel 8有哪些新特性”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!
本文题目:Laravel8有哪些新特性
文章链接:http://scyanting.com/article/gsjjjc.html