Laravel 5.4 现已发布
发布日期:作者: Eric L. Barnes
Laravel 的 5.4 版本现已正式发布!此版本包含许多新功能和改进,以下是一个快速视频,概述了一些亮点
Laravel Dusk
Laravel Dusk 是一个用于启用 JavaScript 的应用程序的端到端浏览器测试工具。它的目标是提供进行页面交互测试的正确方法,因此您可以使用 Dusk 来执行诸如点击按钮/链接、表单以及拖放之类的操作!
Dusk 利用 ChromeDriver 和 Facebook Php-webdriver 进行测试。它可以与任何 Selenium 浏览器一起使用,但默认情况下使用 ChromeDriver,这将省去您安装 JDK 或 Selenium 的麻烦。
Dusk 非常易于使用,无需设置 Selenium 并每次启动服务器。
Laravel Mix
Laravel Mix 是 Elixir 的下一代版本。它使用 webpack 而不是 Gulp 构建。由于重大更改,它被重新命名。
除非您自定义了 Elixir 设置,否则迁移到 Mix 应该不会出现问题,并且 Laracasts 提供了一个关于此更新工具的视频。
Blade 组件和插槽
组件和插槽 旨在让您在 Blade 模板中获得更大的灵活性。例如,假设您有一个用于显示警报的包含模板
// alert.blade.php<div class="alert"> {{ $slot }}</div>
然后,在您的模板文件中,您可以像这样包含它
@component('inc.alert') This is the alert message here.@endcomponent
Markdown 电子邮件
Laravel 5.3 引入了两个关于电子邮件的新功能,Mailables 和 Notifications,它们允许您通过电子邮件、短信和其他渠道发送相同的消息。
基于这些改进,Laravel 5.4 包含一个用于创建电子邮件模板的全新 Markdown 系统。
在幕后,此功能使用 Parsedown 解析器及其伴侣 Markdown Extra,以便您可以使用表格。
@component('mail:message') # Thank You Thank you for purchasing from our store. @component('mail::button', ['url' => $actionUrl, 'color' => $color]){{ $actionText }}@endcomponent @endcomponent
自动外观
您现在可以动态地将任何类用作外观。以下是一个示例
namespace App; class Zonda{ public function zurf() { return ‘Zurfing’; }}
然后,在您的路由或控制器中
use Facades\ { App\Zonda}; Route::get('/', function () { return Zonda::zurf();});
路由改进
另一个新功能是使用流畅语法定义命名路由或中间件的能力
Route::name('profile')->get('user/{id}/profile', function ($id) { // some closure action...}); Route::name('users.index')->middleware('auth')->get('users', function () { // some closure action...}); Route::middleware('auth')->prefix('api')->group(function () { // register some routes...}); Route::middleware('auth')->resource('photo', 'PhotoController');
路由缓存层也得到了改进,这将使大型应用程序的路由匹配看到显著的性能提升。
集合的高阶消息传递
展示此新功能的最佳方法是通过代码示例。假设您有一个集合,并且您想要对每个项目执行操作
$invoices->each(function($invoice) { $invoice->pay();});
现在可以变成
$invoices->each->pay();
更多新功能
其他一些更改和改进包括以下内容
- 新的
retry
帮助器 - 新的
array_wrap
帮助器 - 添加了一个默认的 503 错误页面
- 在整个核心代码中切换到
::class
表示法。 - 为密码重置路由添加了名称
- 支持 PhpRedis
- 添加了 IPv4 和 IPv6 验证器
-
date_format
验证现在更加精确
升级到 Laravel 5.4
官方 文档 包含完整的升级指南,以及您应该了解的一些更改。
Laravel Tinker 现在是一个独立的包,安装很简单。需要该包并包含服务提供者
composer require laravel/tinker
完成后,将服务提供者添加到您的 config/app.php 文件中
Laravel\Tinker\TinkerServiceProvider
您现有的使用浏览器工具包的测试将需要迁移到 Laravel Dusk 或包含 旧包
composer require laravel/browser-kit-testing --dev
要获取最新版本,请修改您的 composer.json
文件,并将 laravel/framework
依赖项更改为 5.4.*
。