资讯专栏INFORMATION COLUMN

Laravel 5.4 正式发布

Vultr / 1116人阅读

摘要:它的目的是提供正确的方式进行页面交互测试,所以可以使用去点击按钮或者链接填写表单甚至拖放。此外,提到测试运行比更快。此次因底层架构改变较大而重命名。这个功能受到的启发,能够将元素简化为可重用区域。

转自 Laravel 社区:https://laravel-china.org/top...

Laravel Dusk

当编写接口测试时,Laravel 提供了一组有用的帮助方法,用来方便地单击链接,填充表单文件或提交表单。Laravel 使用 Symfony BrowserKit 组件来模拟 Web 浏览器的行为。但是,如果应用程序使用 JavaScript 和 AJAX 来加载页面,就没 BrowserKit 啥事了。

Laravel 5.4 将引入 Laravel Dusk 这一新工具,来解决这个问题。

Dusk 能模拟浏览器的运行环境。它的目的是提供正确的方式进行页面交互测试,所以可以使用 Dusk 去点击按钮或者链接、填写表单、甚至拖放。

Dusk 利用 ChromeDriver 和 Facebook PHP-webdriver 进行接口测试。它作用于任何 Selenium 浏览器,而它自带的 ChromeDriver 默认情况下会根据你安装的方式(JDK 或 Selenium)进行保存。这使得 Dusk 很容易使用,而不需要经历设置 Selenium 和每次启动服务器这些艰难的过程。此外,Taylor Otwell 提到 Dusk 测试运行比 Selenium 更快。

@JokerLinly 的文章 Laravel Dusk 又是啥?反正 Laravel 5.4 又能更好玩了

Laravel Mix

Laravel Mix 是 Elixir 的升级版,全新的 Mix 使用 Webpack 构建,而不是之前的 Gulp。此次因底层架构改变较大而重命名。

除非你对 Elixir 做了很多自定义设置,否则迁移应该不用费很大的劲,可以查看 Laracasts 对升级工具的介绍。

Blade Components 和 Slots

Laravel Blade 在 5.4 中加入 Components 和 Slots 两个新的特性。 这个功能受到 Vue.js 的启发,能够将 HTML 元素简化为可重用区域。举个例子,假设你想在主页上添加一个 alert 框。

// alert.blade.php
{{ $slot }}

在模板里你可以这样加载:

@component("inc.alert")
    This is the alert message here.
@endcomponent

@JokerLinly 的文章 Laravel 在 5.4 中为 Blade 模板引擎增加新成员 —— Components & Slots

支持 Markdown 语法的 Emails

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

@JokerLinly 的文章 在 Laravel 5.4 中你将可以使用 Markdown 语法书写邮件

自动化 Facades

现在你可以实时地使用 Facade 对任何类进行加载。下面是个例子:

namespace App;

class Zonda 
{
    public function zurf()
    {
        return ‘Zurfing’;
    }
}

这样在你的控制器或者路由里:

use Facades {
    Apponda
};

Route::get("/", function () {
    return Zonda::zurf();
});

@milkmeowo 的文章 [[Laravel 5.4] 新功能: 实时 Facade](https://laravel-china.org/art...

路由优化

随着 Laravel 5.4 开发 的持续,路由方面将会有两个新的改进,为大型应用程序而生的更好路 (bu) 由 (ming) 缓 (jue) 存 (li) 和更加一目了然的路由注册方式。

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");

路由缓存层的改进会让那些定义了超过一千条路由的大型应用看到希望的曙光。

@JokerLinly 的文章 哎哟!Laravel 5.4 又改进路由啦!

集合增加高阶信息传递(HOM)支持

对此功能最好的解释就是使用例子。假如你相对集合里的每一个元素进行操作:

$invoices->each(function($invoice) {
    $invoice->pay();
});

以上是老的写法,5.4 里你可以这样写:

$invoices->each->pay();

@milkmeowo 同学对此功能做了详细的介绍,请前往查看 https://laravel-china.org/art... 。

更多新功能

以下是不完全列表

新增辅助函数 retry

新增辅助函数 array_wrap

新增默认 503 页面

整个核心加载类时重构为 ::class 调用

增加密码重置的路由命名

支持 PhpRedis

增加 IPv4 和 IPv6 验证

date_format 的验证现在更加准确

升级到 Laravel 5.4

官方文档包含了升级指南。以下是你重点需要注意的。

Laravel Tinker 现在是独立的扩展包,你需要:

composer require laravel/tinker

安装完成后修改 config/app.php 增加:

LaravelTinkerTinkerServiceProvider

你原本的测试如果使用了 browser kit 的话,可以选择升级到 Laravel Dusk 或者加载原有的扩展包:

composer require laravel/browser-kit-testing --dev

最后你需要修改 composer.json 文件把 laravel/framework 指向 5.4.*

Laravel 5.4 更多链接:

官方升级文档:https://laravel.com/docs/5.4/...

5.4 版本说明 https://laravel.com/docs/5.4/...

Laracasts 的关于 5.4 视频介绍:https://laracasts.com/series/...

[Laravel 5.4] 新增 3 个全局中间件 https://laravel-china.org/art...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30539.html

相关文章

  • 基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记【社交

    摘要:在上一篇文章基于分支,从到,再到,简单的介绍了这里分享在开发过程中,前端选择的心理活动。而作为核心开发之一,也负责前端这块的开发。 在上一篇文章《 ThinkSNS+基于Laravel master分支,从1到 0,再到0.1》,简单的介绍了 ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动。 Laravel Mix的放弃 在 Laravel 中,前端工作流默认是由 la...

    songze 评论0 收藏0
  • PJ Blog 升级到 Laravel 5.4

    摘要:关注了也有一小段时间,终于在今天凌晨的时候发布了。当然我也将我的开源博客第一时间升级到,并发布版本。此项目由升级到也是非常的简单,前端编译也用全新的来替代了。升级升级到官方文档已经写得很全面。 关注了 5.4 也有一小段时间,终于在今天凌晨的时候发布了。当然我也将我的开源博客( PJ Blog )第一时间升级到 Laravel 5.4 ,并发布 jcc/blog 1.1 版本。 Lar...

    microelec 评论0 收藏0
  • PJ Blog 升级到 Laravel 5.4

    摘要:关注了也有一小段时间,终于在今天凌晨的时候发布了。当然我也将我的开源博客第一时间升级到,并发布版本。此项目由升级到也是非常的简单,前端编译也用全新的来替代了。升级升级到官方文档已经写得很全面。 关注了 5.4 也有一小段时间,终于在今天凌晨的时候发布了。当然我也将我的开源博客( PJ Blog )第一时间升级到 Laravel 5.4 ,并发布 jcc/blog 1.1 版本。 Lar...

    OpenDigg 评论0 收藏0
  • Laravel 5.5 中文文档翻译完成(包含文档离线下载地址)

    摘要:文档地址离线版本翻译召集参与人员译者推荐阅读正式发布包含新功能说明往期回顾文档翻译召集文档翻译召集项目托管在上,欢迎提交反馈很荣幸跟你们一起翻译哈译者 showImg(https://segmentfault.com/img/remote/1460000011110053); 文档地址:https://d.laravel-china.org/d... 离线版本:https://lar...

    shleyZ 评论0 收藏0
  • laravel 5.4 + dingo api + jwt 代替Passport

    摘要:前言由于在度娘找了半天根本一大堆版本,弄得我死去活来的,每个都试了一堆问题,到底你们做完有没有总结过一次然后有几个使用,完全不行啊,太监版不是我想要的。后来,终于找到例子并实测成功。 前言 由于在度娘找了半天根本一大堆Copy版本,弄得我死去活来的,每个都试了一堆问题,到底你们做完有没有总结过一次?然后有几个使用lunmen+dingo api+jwt,完全不行啊,太监版不是我想要的。...

    _Zhao 评论0 收藏0

发表评论

0条评论

Vultr

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<