Laravel 5.8 版本的新功能及更改

更新日期: 2019-03-05 阅读次数: 10890 字数: 510 分类: Laravel

2019 年 2 月 26 日,Laravel 新版本 5.8 发布。粗略地扫了一遍新功能列表,感觉没有任何尝试的必要,根本没有升级的冲动。都是不痛不痒的小功能更新。只不过有些修改确实无法向下兼容 5.7 版本,例如 TTL 的单位问题,所以不得不发了 5.8 版本,我觉得是这样。

Laravel 5.8 要求 PHP 版本 >= 7.1.3。

一些新功能:

集成了 PHP dotenv 3.0

随之而来的新特性使 .env 的配置更加灵活:

支持了多行变量。例如

LOCATION="烟台
开发区"

不再对配置字符串进行 trim 操作。

可配置从一堆路径中查找 .env 文件,而不是固定路径。我暂时没想到这有什么用。。。

还有两处修改,我没看懂。。。

详情参考 https://laravel-news.com/phpdotenv-3-0

支持 Carbon v2

  • 默认使用 CarbonImmutable
  • 方便做国际化

这两项更改,我都不知道意义何在。。。

Cache TTL 单位由分钟变为秒

这是一个有意义的修改。

因为正常的缓存组件(例如 Redis)都是用的秒,而 Laravel 默认使用分钟作为单位容易出现惯性思维导致的 Bug。

现在,Cache::remember 和 Cache::put 的缓存单位都由分钟变成了秒。

String 和 Array helper 被废弃

laravel 5.9 中将会被移除。

// 废弃
array_add($array, $key, $value);

// 需替换为
Arr::add($array, $key, $value);

这是个悲剧,我还是很喜欢使用 array_add 。。。所以使用框架内置 helper 还是慎重,一调整就带来不必要的迁移工作量。

不再内置 Nexmo / Slack Notification Channels

已被剥离到三方库。

需手动引入 https://laravel.com/docs/5.8/upgrade#nexmo-slack-notification-channels

编译后的 blade 模板,文件头部增加了源 blade 文件的路径

方便调试时,知道这是来自哪个源文件。

效果如 https://laravel-news.com/laravel-5-8-blade-template-file-path

laravel5.8对php版本有要求吗?

PHP >= 7.1.3

参考

https://laravel-news.com/laravel-5-8

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式