热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

laravel5.3php版本,发行版本说明|序言|Laravel5.3中文文档

发行版本说明由学院君创建于4年前,最后更新于11个月前版本号#223296views12likes0collects1、支持政策对于LTS版本,比如Laravel5.

发行版本说明

由 学院君 创建于4年前, 最后更新于 11个月前

版本号 #2

23296 views

12 likes

0 collects

1、支持政策

对于 LTS 版本,比如 Laravel 5.1,我们将会提供为期两年的 bug 修复和三年的安全修复支持。LTS 版本将会提供最长时间的支持和维护。

对于其他通用版本,只提供六个月的 bug 修复和一年的安全修复支持,比如 Laravel 5.3。

2、Laravel 5.3

Laravel 5.3 在 5.2 的基础上继续进行优化,提供了大量新功能和新特性:基于驱动的通知系统;通过Laravel Echo提供强大的实时支持;通过Laravel Passport实现无痛的OAuth2服务器;通过Laravel Scout实现全文模型搜索;在Laravel Elixir中支持Webpack;“可邮寄”的对象;明确分离web和api路由;基于闭包的控制台命令;存储上传文件的辅助函数;支持POPO和单动作控制器;以及优化前端脚手架;等等等等。

通知(Notifications)

注:Laracasts上有关于此特性的免费视频教程。

Laravel Notifications 为我们提供了简单、优雅的API用于在不同的发行渠道中发送通知,例如邮件、SMS、Slack等等。例如,你可以定义一个单据已经支付的通知,然后通过邮件和SMS发送这个通知,你可以使用一个很简单的来实现:

$user->notify(new InvoicePaid($invoice));

Laravel社区已经为通知系统编写了各种各样的驱动,包括对iOS和Android通知的支持,要学习更多关于通知系统的细节,查看其相应文档。

WebSockets/事件广播

事件广播在之前版本的Laravel中已经有了,Laravel 5.3 通过为已私有和已存在的 WebSocket 频道添加频道级认证对此功能进行了极大的优化和提升:

/*

* Authenticate the channel subscription...

*/

Broadcast::channel('orders.*', function ($user, $orderId) {

return $user->placedOrder($orderId);

});

Laravel Echo,通过NPM安装的全新的Javascript包,将和Laravel 5.3一起发布,用于为订阅频道以及在客户端Javascript应用中监听服务器端事件提供了简单、优美的API,Echo包含对Pusher和Socket.io的支持:

Echo.channel('orders.' + orderId)

.listen('ShippingStatusUpdated', (e) => {

console.log(e.description);

});

为了订阅到传统频道,Laravel Echo还使得订阅到提供谁在监听给定频道信息的已存在频道变得简单:

Echo.join('chat.' + roomId)

.here((users) => {

//

})

.joining((user) => {

console.log(user.name);

})

.leaving((user) => {

console.log(user.name);

});

要学习更多关于Echo和事件广播的内容,请参考其对应文档。

Laravel Passport(OAuth2 服务器)

注:Laracasts上提供了关于这一新特性的免费视频教程。

Laravle 5.3 使用Laravel Passport让API认证变得简单。Laravel Passport可以在几分钟内为应用提供一个完整的Oauth2服务器实现,Passport基于 Alex Bilbie维护的 League OAuth2 server 实现。

Passport使得通过OAuth2授权码获取访问令牌(access token)变得轻松,你还可以允许用户通过Web UI创建“个人访问令牌”。为了让你更快上手,Passport内置了一个Vue组件,该组件提供了OAuth2后台界面功能,允许用户创建客户端、撤销访问令牌,以及更多其他功能:

如果你不想使用Vue组件,欢迎提供你自己的用于管理客户端和访问令牌的前端后台。Passport提供了一个简单的JSON API,你可以在前端使用任何Javascript框架与之集成。

当然,Passport还让定义可能在应用消费你的API期间被请求的访问令牌域变得简单:

Passport::tokensCan([

'place-orders' => 'Place new orders',

'check-status' => 'Check order status',

]);

此外,Passport还包含了用于验证访问令牌认证请求包含必要令牌域的中间件:

Route::get('/orders/{order}/status', function (Order $order) {

// Access token has "check-status" scope...

})->middleware('scope:check-status');

最后,Passport还支持从Javascript应用访问你的API,而不必担心访问令牌传输,Passport通过加密JWT COOKIEs和同步CSRF令牌来实现这一功能,从而让开发者专注于业务开发。

想要学习更多Passport细节,请查看其文档。

搜索(Laravel Scout)

Laravel Scout 提供了一个简单的、基于驱动的针对Eloquent模型的全文搜索解决方案。通过模型观察者,Scout会自动同步更新Eloquent记录的搜索索引,目前,Scout使用 Algolia 驱动,不过,编写自己的驱动很简单,你可以通过自己的搜索实现扩展Scout。

你可以简单通过添加 Searchable trait到模型让模型变得可搜索:

namespace App;

use Laravel\Scout\Searchable;

use Illuminate\Database\Eloquent\Model;

class Post extends Model

{

use Searchable;

}

trait被添加到模型之后,当保存模型实例的时候其信息将会被同步到搜索索引:

$order = new Order;

// ...

$order->save();

模型被索引之后,就可以通过模型进行全文搜索了,甚至还可以对搜索结果进行分页:

return Order::search('Star Trek')->get();

return Order::search('Star Trek')->where('user_id', 1)->paginate();

当然,Scout还有很多其他特性,具体请查看其文档。

可邮寄对象

注:Laracasts上有关于该特性的免费视频教程。

Laravel 5.3支持可邮寄对象,这些对象可以以一个简单对象的形式表示邮件信息,而不再需要在闭包中自定义邮件信息,例如,你可以定义一个简单的邮寄对象用作欢迎邮件:

class WelcomeMessage extends Mailable

{

use Queueable, SerializesModels;

/**

* Build the message.

*

* @return $this

*/

public function build()

{

return $this->view('emails.welcome');

}

}

可邮寄对象被创建以后,你可以使用一个简单、优雅的API将其发送给用户。可邮寄对象可以在浏览代码的同时了解邮件信息:

Mail::to($user)->send(new WelcomeMessage);

当然,你还可以标记可邮寄对象为“队列化”,这样这封邮件就会在后台通过队列任务发送:

class WelcomeMessage extends Mailable implements ShouldQueue

{

//

}

更多可邮寄对象细节请查看其对应文档。

存储上传文件

注:Laracasts上有关于该特性的免费视频教程。

在web应用中,最常见的任务之一就是保存用户上传文件了,比如头像、照片、文档等等。Laravel 5.3通过在上传文件实例上使用新的 store 方法让这一工作变得简单。只需要简单调用 store 方法并传入文件保存路径即可:

/**

* Update the avatar for the user.

*

* @param  Request  $request

* @return Response

*/

public function update(Request $request)

{

$path = $request->file('avatar')->store('avatars', 's3');

return $path;

}

更多细节请查看其完整文档。

Webpack & Laravel Elixir

Laravel Elixir 6.0和Laravel 5.3一起发布,新版本将捆绑支持Webpack和Rollup Javascript模块。默认情况下,Laravel 5.3 的 gulpfile.js 文件现在已经使用Webpack来编译Javascript:

elixir(mix => {

mix.sass('app.scss')

.webpack('app.js');

});

前端架构

注:Laracasts有关于本特性的免费视频教程。

Laravel 5.3 提供了一个更加现代的前端架构。这主要会影响make:auth命令生成的认证脚手架。不再从CDN中加载前端资源,所有依赖都被定义在默认的 package.json 文件中。

此外,支持单文件的Vue组件现在已经开箱支持, resources/assets/js/components 目录下包含了一个简单的示例组件 Example.vue ,新的 resources/assets/js/app.js 文件将会启动被配置你的Javascript库以及Vue组件。

这种架构对开始开发现代的、强大的Javascript应用提供了更好的指导,而不需要要求应用使用任何给定Javascript或者CSS框架。关于如何进行现代Laravel前端开发,请查看对应文档。

路由文件

默认情况下,新安装的Laravel 5.3应用在新的顶级目录routes下包含两个HTTP路由文件。web和api路由文件在如何分割Web界面和API路由方面提供了指导。api路由文件中的路由会通过 RouteServiceProvider 自动添加api前缀和auth:api中间件。

闭包控制台命令

除了通过命令类定义之外,现在Artisan命令还可以在 app/Console/Kernel.php 文件的 commands 方法中以简单闭包的方式定义。在新安装的Laravel 5.3应用中, commands 方法会加载 routes/console.php 文件,从而允许你基于闭包、以路由风格定义控制台命令:

Artisan::command('build {project}', function ($project) {

$this->info('Building project...');

});

更多详情请查看完整的Artisan文档。

$loop变量

注:Laracasts中有关于此特性的免费视频教程。

当我们在Blade模板中循环遍历的时候,$loop变量将会在循环中生效。通过该变量可以访问很多有用的信息,比如当前循环索引值,以及当前循环是第一个还是最后一个迭代:

@foreach ($users as $user)

@if ($loop->first)

This is the first iteration.

@endif

@if ($loop->last)

This is the last iteration.

@endif

This is user {{ $user->id }}

@endforeach

更多详情请查看完整的Blade文档。

3、早期版本

更多早期版本发行说明:



推荐阅读
  • AstridDAO 专访:波卡稳定币黑马 BAI
    加入Pol ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 依赖注入_php 依赖注入容器
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了php依赖注入容器相关的知识,希望对你有一定的参考价值。原文: http://blog.csdn.net/r ... [详细]
  • FILETYPE*filetype.txt*ForVimversion6.4.文件类型*filetype**file-type*1.文件类型|filetypes|2.文件类型插 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
  • 前一天学习了视图按键事件的监听。首先新建了一个自定义的视图,在自定义视图中,重新编了其构造函数和onDraw()方法。之后将该视图用于应用程序,最后添加该视图的按键监听器,在监听器中对KeyEvent ... [详细]
  •   《WindowsAzurePlatform系列文章目录》  本文将介绍如何在AzureSQLDatabase创建只读用户。  请先按照笔者之前的文章:AzureSQLDatabas ... [详细]
  • UMTS基础知识汇总
    协议框架23G接口UMTS实体EntityNameDescriptionAuCAuthenticationCenterCBCCellBroadcastCenterC-RNCCon ... [详细]
author-avatar
神秘的穿越火线99_628
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有