Laravel 7 正式发布,一起来看看有哪些重要更新吧

2020-03-11 17:36:05 浏览数 (1)

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。

0 人点赞