![Laravel 5.4 版本正式发布](http://image.golaravel.com/f/48/7a406073b512ef16a891127824c7b.jpg)
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
[官方文档](升级说明.md)包含了完整的升级指南。另外,注意以下几个变化:
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。
## 关于 Laravel 5.4 的更多信息
请参考官方文档[升级指南](升级说明.md)和[版本更新日志](发行说明.md)。
- 前言
- 翻译说明
- 发行说明
- 升级说明
- 贡献导引
- 入门指南
- 安装
- 配置信息
- 文件夹结构
- 请求周期
- 开发环境部署
- Homestead
- Valet
- 核心概念
- 服务容器
- 服务提供者
- Facades
- Contracts
- HTTP层
- 路由
- 中间件
- CSRF 保护
- 控制器
- 请求
- 响应
- 视图
- Session
- 表单验证
- 前端
- Blade 模板
- 本地化
- 前端指南
- 编辑资源 Mix
- 安全
- 用户认证
- Passport OAuth 认证
- 用户授权
- 加密解密
- 哈希
- 重置密码
- 综合话题
- Artisan 命令行
- 广播系统
- 缓存系统
- 集合
- 错误与日志
- 事件系统
- 文件存储
- 辅助函数
- 邮件发送
- 消息通知
- 扩展包开发
- 队列
- 任务调度
- 数据库
- 快速入门
- 查询构造器
- 分页
- 数据库迁移
- 数据填充
- Redis
- Eloquent ORM
- 快速入门
- 模型关联
- Eloquent 集合
- 修改器
- 序列化
- 测试
- 快速入门
- HTTP 测试
- 浏览器测试 Dusk
- 数据库测试
- 测试模拟器
- 官方扩展包
- Cashier 交易工具包
- Envoy 部署工具
- Scout 全文搜索
- Socialite 社会化登录