当前位置: 首页 > 后端技术 > PHP

Laravel5.8预览

时间:2023-03-29 16:39:25 PHP

无论您是从头开始一个新项目还是升级现有项目,您都应该查看Laravel5.8中的新功能和更改。Laravel5.0于2015年2月发布,此后大约每六个月发布一次新的5.x。之前的版本(Laravel5.7)于2018年9月发布,因此我们可以期待在2019年3月左右看到Laravel5.8版本。当您创建新项目或升级现有项目时,您应该了解新功能和一些重要的Laravel5.8的变化。在本文中,我们将为您快速介绍。一如既往,请在升级Laravel版本之前仔细阅读并理解升级指南,以确保升级过程顺利进行。接下来,让我们来看看Laravel5.8中的一些重要更新。电子邮件字段验证:Laravel5.8中内置的电子邮件验证规则将支持国际字符。如果你的项目中有如下表单验证规则:$request->validate(['email'=>'email',]);并尝试验证Emailhej@b?r.se,在5.7及之前的版本中,验证会失败,但在5.8中就能通过验证。在5.7版本中,表单验证逻辑与SwiftMailer(Laravel使用的PHP邮件程序库)的逻辑不匹配,但现在它们都符合RFC6530。dotenv3.0:Laravel5.8将支持相对较新的dotenv3.0来管理项目中的.env环境文件。dotenv3.0中的关键更新是支持多行字符串并在环境文件中保留字符串末尾的空格,例如:DEVELOPMENT_APP_KEY="specialstringforthisapp"在以前的版本中这只会返回specialstringfor,但在Laravel5.8中它将解析整个此应用程序的特殊字符串。新版本还保留了字符串末尾的空格,而在以前的版本中,空格被忽略了。对于需要多行API密钥以提高安全性的场景来说,这是一个很好的更新。更改Mailables的目录名称:这不是新功能,而是升级项目时需要注意的重要关键点。如果您的项目中有可填充的内容,并且您使用phpartisanvendor:publish命令自定义了组件,则文件夹名称略有更改,即/resources/views/vendor/mail/markdown目录现在命名为/resources/views/供应商/邮件/文本。这是因为这两个文件夹都可以包含降价代码,用于使用纯文本制作漂亮的响应式html模板。将markdown文件夹称为text更符合逻辑。新的错误页面模板:Laravel5.8将附带新的错误页面,采用极简设计,旨在更适合各种网站和Web应用程序,而无需重新设计以适应主题。Laravel5.7404视图“上方”和5.8404视图“下方”如果您愿意,您仍然可以自定义错误页面或导入以前的设计(查看自定义laravel错误页面的教程)。弃用的数组和字符串助手:所有array_*和str_*全局助手都已弃用,并将在Laravel5.9中删除。应该改用Arr::和Str::方法。如果您不能或不想重写现有代码并且有可用于维护功能的包,但如果您需要使用它们,那么现在最好习惯新的命令行。当前版本搜索array_*方法:functionarray_add($array,$key,$value)应该替换为:Arr::add($array,$key,$value)当前版本搜索str_*方法:functionstr_contains($haystack,$needles)应替换为:Str::contains($haystack,$needles);事实上,如果您检查array_和str_全局辅助函数的5.8代码,您会发现它们已经使用了静态代理版本。缓存---过期时间(ttl)现在以秒而不是分钟来描述:请注意,如果您正在使用Laravel的缓存组件,当您将整数ttl参数传递给缓存函数时,5.8将设置为以秒为单位存活而不是5.7中的分钟,例如:Cache::put('foo','bar',30);在Laravel5.7中,foo会保存30分钟,而在5.8中只会保存30秒。这是一个简单但非常重要的更新。MySQL中的JSON值:如果将JSON值存储在MySQL和MariaDB数据库列中,在5.7中Laravel将返回用双引号括起来的值。5.8将返回相同的值清洁器。这是Laravel升级指南中的一个示例,说明了更改:$value=DB::table('users')->value('options->language');dump($value);//Laravel5.7...'"en"'//Laravel5.8...'en'Carbon2支持您现在可以选择在Laravel5.8中使用Carbon1或Carbon2作为DateTime函数。在此处查看Carbon迁移指南,看看您是否真的想启用Carbon2。Nexmo和Slack通知:Nexmo和Slack通知已从主Laravel项目中删除并提取到第三方包中。要在您的项目中继续使用Slack或Nexmo功能,您需要使用:因此,这几乎涵盖了您应该注意的关键变化。我们总是喜欢在WelcmSoftware上查看新软件版本,并期待很快发布5.8版。更多翻译文章请查看Laravel开发者社区https://learnku.com/laravel/c...