Laravel 5.8 正式发布了,一起来看看有哪些新特性吧!

Laravel 5.8 在美国时间2019年2月26号正式发布了,该版本引入了一些新特性以及最新的bug修复,并对框架核心代码做了优化。

这些新特性包括:

PHP dotenv

Laravel 5.8 集成了 PHP dotenv 3.0,并引入了如下相关新特性:

  • 当我们试图读取和修改部分环境变量时更加灵活;
  • 支持多行变量;
  • 不再清除变量值两边的空格,配置什么就会得到什么;
  • 可以尝试从路径列表中查找 dotenv 文件,而不是单个路径;
  • 更强大的变量名验证以便避免静默失败和模糊错误

Carbon v2

Laravel 5.8 中可以使用 Carbon v1 或 Carbon v2,包括 CarbonImmutable,甚至将其设置为默认值。在 Carbon v2 中,本地化功能做了很大的调整,从而相比 v1 而言提供更好的国际化支持。

缓存有效期调整

对现有项目影响较大的一个更新恐怕就是缓存有效期的调整,传递到缓存方法的表示有效期的整型数字单位从分钟变成了秒,如果你的代码中使用了缓存有效期,需要检查一下并做修改,以符合你编写代码时的预期。此外,你还可以使用 DateInterval 实例实现相同的目的。

相关教程:Laravel 5.8 新特性系列 —— 缓存有效期单位调整

废弃字符串和数组辅助函数

对于 Laravel 5.8 中废弃字符串和数组辅助函数这件事,不要过于惊慌,与使用相应的类方法相比,辅助函数提供的价值很小(除了你所习惯的代码风格),并且 Laravel 官方也计划以可选扩展包的方式发布这些辅助函数,如果你想要继续使用它们的话,可以通过扩展包的方式引入。

相关教程:Laravel 5.8 新特性系列 —— 废弃全局的字符串和数组相关辅助函数

自动策略类解析

从 Laravel 5.8 开始,只要授权策略类和模型类在框架约定的位置,就不必在 AuthServiceProvider 类中显式注册它们。

如果你不想安装约定路径来存放模型类和授权类,可以注册一个回调来实现策略类的自动解析:

Gate::guessPolicyNamesUsing(function ($class) {
    // Do stuff
    return $policyClass;
});

相关教程:Laravel 5.8 新特性系列 —— 支持策略类自动解析功能

更多新特性

从今天开始,Laravel 5.7 将不再进行 bug 修复和功能更新,不过,还是会进行安全更新直到 2019 年 8 月。

Laravel 5.8 是最新的稳定版本(不是LTS版本),并且会接受 bug 修复和功能更新直到 2019 年 8 月,安全更新则会持续到 2020 年 2 月。

了解更多

更多 Laravel 5.8 的功能特性更新,请参考新版特性,相应的升级文档请查看升级指南

注:本文翻译整理自 Laravel News

上一篇: Laravel 5.7 正式发布了,一起来看看有哪些新特性吧!

下一篇: Laravel 6.0 版本即将发布!