Laravel 7 版本于 2020 年 3 月 3 日正式发布,本次版本更新包含了很多新特性:
- 轻量级用户认证解决方案 —— Laravel Airlock
- 路由匹配速度底层优化
- 自定义 Eloquent 转化类型
- 支持 Blade 组件标签
- 字符串操作优化
- 提供了一个全新的 HTTP 客户端(基于 Guzzle 库)
- 原生支持 CORS 解决跨域请求问题
- 更多其他特性...
下面我们就一起来看看其中一些比较重要的新特性。
Laravel Airlock
Laravel Airlock 为 SPA(单页面应用)、移动应用以及基于 Token 的简单 API 系统提供了轻量级的用户认证解决方案。
Airlock 是基于令牌(Token)的 API 认证实现,允许为应用的每个用户生成多个 API 令牌,这些令牌可用于被授权执行指定的动作。关于 Airlock 的使用细节,在 Laravel 文档中有详细介绍。
Laravel Airlock 很好地填补了默认的 token
和基于 OAuth2 的 passwort
认证驱动之间的空白,为轻量化的、可用于生产环境的 API 用户认证实现提供了有力的支撑。
自定义 Eloquent 转化
Laravel 包含了多个内置的、有用的转化类型,不过,有的时候,你还是需要自定义自己的转化类型,在 Laravel 7 中,这可以通过定义一个实现 CastsAttributes
接口的类来实现。
实现 CastsAttributes
接口的类必须定义 get 和 set 方法,get 方法负责将获取自数据库的原生值转换为一个转化类型值,而 set 方法是 get 方法的逆操作,负责将转化类型值转换为可存储到数据库的原生值。
Blade 组件标签&优化
Blade 组件现在被重构为允许基于标签进行渲染、属性管理、定义组件class、内联视图组件等,关于这一块的具体细节,在 Laravel 文档中有详细介绍。
HTTP Client
Laravel 现在基于 Guzzle HTTP Client 提供了一个优雅的、最小化的 API,通过这个 API,你可以快速发起 HTTP 请求以便于其他 Web 应用进行通信。
需要指出的是,Laravel 对 Guzzle 库的封装会专注于自身适用的场景以及提供良好的开发者体验。
缓存路由速度优化
Laravel 7 提供了一个新的方法来匹配那些使用 route:cache
命令缓存的、已编译的缓存路由,在大型应用(例如,超过800个路由)中,在基准测试中,这些优化可以将每秒处理请求数提升两倍,不过,该优化对上层代码而言是透明的,无需对现有代码做任何调整。
更多特性
以上只是 Laravel 7 众多新特性中的一小部分,你可以通过官方文档的版本更新以及升级指南查看完整的新特性:https://laravel.com/docs/7.x/releases。
此外,Taylor 在 Laracon Online 中为 Laravel 7 的新特性做了完整的演练,Laracasts 也为其提供了一些新的教程,感兴趣的同学可以去看看。
学院君也会开始 Laravel 7 中文文档的翻译工作,争取两周内完成。
声明:以上内容整理自 Laravel News,原文链接:https://laravel-news.com/laravel7。