发布于 2017-01-25 00:59:35 | 134 次阅读 | 评论: 0 | 来源: 网友投递
Laravel PHP Web开发框架
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
Laravel 5.4 正式发布了。有以下更新:
当编写接口测试时,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 更快。
Laravel Mix 是 Elixir 的升级版,全新的 Mix 使用 Webpack 构建,而不是之前的 Gulp。此次因底层架构改变较大而重命名。
除非你对 Elixir 做了很多自定义设置,否则迁移应该不用费很大的劲,可以查看 Laracasts 对升级工具的介绍。
Laravel Blade 在 5.4 中加入 Components 和 Slots 两个新的特性。 这个功能受到 Vue.js 的启发,能够将 HTML 元素简化为可重用区域。举个例子,假设你想在主页上添加一个 alert 框。
// alert.blade.php <div class="alert"> {{ $slot }} </div>
在模板里你可以这样加载:
@component('inc.alert') This is the alert message here. @endcomponent
@JokerLinly 的文章 Laravel 在 5.4 中为 Blade 模板引擎增加新成员 —— Components & Slots
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
现在你可以实时地使用 Facade 对任何类进行加载。下面是个例子:
namespace App; class Zonda { public function zurf() { return ‘Zurfing’; } }
这样在你的控制器或者路由里:
use Facades { AppZonda }; Route::get('/', function () { return Zonda::zurf(); });
随着 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');
路由缓存层的改进会让那些定义了超过一千条路由的大型应用看到希望的曙光。
对此功能最好的解释就是使用例子。假如你相对集合里的每一个元素进行操作:
$invoices->each(function($invoice) { $invoice->pay(); });
以上是老的写法,5.4 里你可以这样写:
$invoices->each->pay();
@milkmeowo 同学对此功能做了详细的介绍,请前往查看 https://laravel-china.org/articles/3681 。
以下是不完全列表
新增辅助函数 retry
新增辅助函数 array_wrap
新增默认 503 页面
整个核心加载类时重构为 ::class
调用
增加密码重置的路由命名
支持 PhpRedis
增加 IPv4 和 IPv6 验证
date_format
的验证现在更加准确
官方文档包含了升级指南。以下是你重点需要注意的。
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.*
。
Laracasts 的关于 5.4 视频介绍:https://laracasts.com/series/whats-new-in-Laravel-5-4
[Laravel 5.4] 新增 3 个全局中间件 https://laravel-china.org/articles/3664
来自:https://news.laravel-china.org/posts/539
GitHub 发布主页和源码下载地址