Laravel 5.4 版本正式发布
Laravel 5.4 版本正式发布了!这一版本带来了很多新特性以及对原有功能的提升。
Laravel Dusk
Laravel Dusk 是一个端到端(end-to-end)的浏览器测试工具。对于夹杂了 JavaScript 开发的应用,Dusk 可以提供页面交互测试,因此,你可以用 Dusk 测试点击按钮、链接、表单,甚至拖拽功能。
Dusk 利用 ChromeDriver 和 Facebook 的 Php-webdriver 实现的测试功能。它可以和 Selenium 浏览器协同工作,但是由于自带了 ChromeDriver,你可以省去安装 JDK 或 Selenium 了。
Dusk 非常易用,无须设置 Selenium,也无需每次都启动服务。
Laravel Mix
Laravel Mix 是 Elixir 的继任者。Mix 抛弃了 Gulp,投入了 webpack 的怀抱。这次改名字就是为了凸显这次变化的重大。
除非你对 Elixir 的设置做了定制,否则迁移到 Mix 轻而易举。
Markdown 邮件
Laravel 5.3 曾经引入了两个关于邮件的新特性:Mailables 和 Notifications,能帮你通过邮件、短信或其他通道发送同一份信息。
基于上述两个功能,Laravel 5.4 包含了全新的创建邮件模版的 Markdown 系统。
底层原理是基于 Markdown Extra 实现了 Parsedown 解析器,因此你可以这样:
@component('mail:message')
# Thank You
Thank you for purchasing from our store.
@component('mail::button', ['url' => $actionUrl, 'color' => $color])
{{ $actionText }}
@endcomponent
@endcomponent
自动化 Facades
你现在可以将任何 class 作为 Facade 使用:
namespace App;
class Zonda
{
public function zurf()
{
return ‘Zurfing’;
}
}
然后,在路由或控制器中:
use Facades\ {
App\Zonda
};
Route::get('/', function () {
return Zonda::zurf();
});
路由功能的提升
添加命名路由(named route)或中间件可以使用以下瀑布语法(fluent syntax)了:
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');
更多新特性
其他变化或提升还包括:
- 新的
retry
助手函数 - 新的
array_wrap
函数 - 添加了一个默认的 503 错误页面
- 从底层核心切换到
::class
notation - 为密码重置陆游命名
- 支持 PhpRedis
- 增加 IPv4 和 IPv6 校验能力
date_format
校验现在更精确了
升级到 Laravel 5.4
官方文档包含了完整的升级指南。另外,注意以下几个变化:
Laravel Tinker 现在成为了一个独立的包(package),安装方便了,只需 require 这个包,然后引入相应的 service provider 即可:
composer require laravel/tinker
上述指令执行完成后,将它的 service provider 添加到 config/app.php 文件中:
Laravel\Tinker\TinkerServiceProvider
通过修改 composer.json
文件,将 laravel/framework
以来修改为 5.4.*
即可获取最新版本的 Laravel。