宁泽林_NiZerin - 互联网技术博客

  • 首页
  • 交流群
  • 关于我
  • 留言版
  1. 首页
  2. Laravel
  3. 正文

[译] Laravel 5.8 即将发布,来看看有哪些新特性吧

2019年2月20日 2642点热度 0人点赞 0条评论

无论是从零开始创建新项目还是升级现有的项目,你都应该了解一下 Laravel 5.8 的新特性和变化。

Laravel 5.0 发布于 2015 年 2 月,从那时起大约每六个月会发布一次 5.x 的新版本。上一个版本(Laravel 5.7)于 2018 年 9 月发布,因此我们预计可以在 2019 年 3 月左右看到 Laravel 5.8的发行版。

当你创建一个新项目或升级现有的项目时,你应该注意到 Laravel 5.8中的新功能和一些重要的变更,在本文中,我们会为你快速的介绍一遍。

和往常一样,在升级 Laravel 版本之前,请务必仔细阅读并理解 升级指南,以确保升级过程的顺利。

下面,让我们一起了解一下Laravel 5.8 中的一些重要更新。

邮箱字段验证:

在 Laravel 5.8 中内置的email 验证规则将支持国际字符

如果你的项目中有如下表单验证规则:

$request->validate([ 'email' => 'email', ]);

并尝试验证邮箱hej@bär.se,在5.7及以前版本中,验证会失败,但是在5.8中将能通过验证。

在5.7版本中表单验证逻辑与 SwiftMailer(Laravel使用的PHP mailer库) 的逻辑并不匹配,但是现在它们都符合 RFC6530 规范。

dotenv 3.0:

Laravel 5.8 将会支持 相对较新 的 dotenv 3.0 来管理项目中的 .env 环境文件。

dotenv 3.0 中的关键更新是支持环境文件中支持多行字符串和保留字符串末尾的空格,例如:

DEVELOPMENT_APP_KEY="specialstringfor
thisapp"

在之前的版本中,这仅会返回 specialstringfor,但在 Laravel 5.8 里,
它会解析整个 specialstringfor thisapp。新版本还会保留字符串末尾的空格,而在之前的版本里,空格会被忽略。

对于需要多行 API 秘钥以提高安全性的场景来说,这是一个很棒的更新。

更改 Mailables 的目录名称:

这不是一个新功能,而是升级项目时需要注意的重要关键点。

如果您的项目中有可填写的东西,并且您使用 php artisan vendor:publish 命令定制了组件,则文件夹名称稍有变化,即 /resources/views/vendor/mail/markdown 目录现在名为 /resources/views/vendor/mail/text 。 这是因为两个文件夹都可以包含 markdown 代码,用于制作带有纯文本的漂亮响应式的 html 模板。 调用 markdown 文件夹文本更合乎逻辑。

新的错误页面模板:

Laravel 5.8 将附带新的错误页面,其中包含极简主义的设计,旨在更适合各种网站和网络应用程序,而无需重新设计以适应主题。

file

Laravel 5.7 404 视图 「上面」 和 5.8 404 视图 「下面」

如果你愿意,仍然可以自定义错误页面或者导入以前的设计(请查看 自定义laravel错误页面的教程)。

弃用 Array 和 String 辅助函数:

所有的 array_ * 和 str_ * 全局辅助函数都已弃用,将在 Laravel 5.9 中删除。 应该使用 Arr :: 和 Str ::方法。 如果您不能或不想重新编写现有的代码和有可用于维护功能的软件包,但如果您需要使用它们,现在习惯于使用新的命令行是一种好习惯。

当前版本搜索 array_* 方法:

function array_add($array, $key, $value)

应该换成:

Arr::add($array, $key, $value)

当前版本搜索 str_* 方法:

function str_contains($haystack, $needles)

应该换成:

Str::contains($haystack, $needles);

事实上,如果 你检查了 array * 和 str * 全局助手函数的 5.8 代码 ,你会看到 他们已经使用了静态代理版本了。

Caching --- 过期时间(ttl)现在是以秒钟而不是分钟来描述:

请注意,如果你正在使用 Laravel 的缓存组件,当你传入一个 integer 型的 ttl 参数给缓存函数时,5.8 中会被设置为以秒为单位生存时间,而不是 5.7 中的分钟,例如:

Cache::put('foo', 'bar', 30);

在 Laravel 5.7 中,foo 会被存储 30 分钟,而在 5.8 里仅仅会存储30秒。这是一个简单但 非常重要 的更新。

MySQL 中的 JSON 值:

如果您在 MySQL 和 MariaDB 数据库列中存储 JSON 值,则在 5.7 Laravel 中将返回用双引号括起来的值。 5.8 将返回更干净的相同值。

以下是 Laravel 升至指南中说明更改的示例:

$value = DB::table('users')->value('options->language');
dump($value);
// Laravel 5.7...
'"en"'
// Laravel 5.8...
'en'

Carbon 2 的版本支持

您现在可以选择在 Laravel 5.8 中使用 Carbon 1 或 Carbon 2 作为 DateTime 函数。点击这里 Carbon migration guide 来确定你是否真的要启用 Carbon 2。

Nexmo 和 Slack Notification 通知:

Nexmo 和 Slack Notification 通知已从 Laravel 主项目中删除,并提取到第三方软件包中。

要在项目中继续使用 Slack 或 Nexmo 功能,您需要使用:

composer require laravel/nexmo-notification-channel
composer require laravel/slack-notification-channel

然后可以像以前一样配置和使用它们。

所以这几乎涵盖了你应该注意的关键变化。我们总是喜欢在 Welcm Software 上查看新的软件版本,并期待很快发布 5.8 版本。

原文地址:https://medium.com/@welcm/whats-new-in-l...

译文地址:https://learnku.com/laravel/t/24324

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: laravel php translations
最后更新:2019年2月20日

NiZerin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

取消回复

NiZerin

这个人很懒,什么都没留下

本站小程序

   

内容将于本站同步

本站公众号

每周推送最新前沿技术文章

最新 热点 随机
最新 热点 随机
Laravel 8 性能优化自查清单 Laravel 7 已停止维护 Laravel: 新的发行时间表(2021 后改为一年一更) PHP8 已经发布,来看看有哪些新特性吧 Laravel 8 将于9月8日发布! Laravel 重大安全更新
Laravel 7 已停止维护Laravel: 新的发行时间表(2021 后改为一年一更)Laravel 8 性能优化自查清单
本站 Github 开源社区已经开通 PHP异步编程: 基于 PHP 实(chao)现(xi) NODEJS web框架 KOA Python如何爬取实时变化的WebSocket数据 解析 Node.js 通过 axios 实现网络请求 基于 Webpack4 搭建 Vue 开发环境 Flutter 基础(十二)路由(页面跳转)与数据传递
标签聚合
vue translations flutter javascript php wordpress go react node laravel
最近评论
发布于 1 周前(04月09日) 还不错
发布于 3 周前(03月25日) > 您可以添加到收藏夹,以后常来看看 我添加啦,常来,一定。
发布于 4 周前(03月19日) 不错
发布于 1 个月前(03月07日) 哈哈哈哈
发布于 1 个月前(03月07日) 哈哈哈哈哈
友情链接
  • 科学上网
  • 阿里云特惠
  • 宝塔运维特惠
  • PHP函数字典

COPYRIGHT © 2021 宁泽林_NiZerin - 互联网技术博客. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS