Laravel - 为 WEB 艺术家创造的 PHP 框架。

PHP THAT DOESN'T HURT. CODE HAPPY & ENJOY THE FRESH AIR.

Laravel logo

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。

关于 Laravel 5.4 的更多信息

请参考官方文档升级指南版本更新日志


英文原文地址:https://laravel-news.com/laravel-5-4

关于作者 王赛
源码面前,了无秘密。