[ Laravel 5.7 文档 ] 序言 —— 新版特性

栏目: PHP · 发布时间: 6年前

内容简介:Laravel 5.7 在 Laravel 5.6 的基础上继续进行优化,包括引入Laravel Nova 是一个专门为 Laravel 应用打造的、美观的、一流的后台管理面板,当然,Nova 的核心功能还是通过 Eloquent 管理底层数据库记录,不过在这个核心功能之上,Nova 还支持过滤器、透镜、动作、动作队列、授权、自定义工具、自定义卡片、自定义字段等额外功能。要了解更多关于 Laravel Nova 的内容,请参考

Laravel 5.7 在 Laravel 5.6 的基础上继续进行优化,包括引入 Laravel Nova ,认证脚手架中可选的邮箱验证,支持针对未登录用户的授权,集成 Symfony dump-server ,本地化通知,以及多个 bug 修复和可用性的提升。

Laravel Nova

Laravel Nova 是一个专门为 Laravel 应用打造的、美观的、一流的后台管理面板,当然,Nova 的核心功能还是通过 Eloquent 管理底层数据库记录,不过在这个核心功能之上,Nova 还支持过滤器、透镜、动作、动作队列、授权、自定义 工具 、自定义卡片、自定义字段等额外功能。

要了解更多关于 Laravel Nova 的内容,请参考 Nova 官网

邮箱验证

Laravel 5.7 为 Laravel 框架自带的认证脚手架代码引入了邮箱验证功能,为了实现这个功能,框架自带的 users 表迁移还新增了一个时间戳字段 email_verified_at

如果想提示新注册用户验证他们的邮箱, User 模型类需要实现 MustVerifyEmail 接口:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable implements MustVerifyEmail
{
    // ...
}

一旦 User 模型类标记实现 MustVerifyEmail 接口,新注册的用户将会收到一封邮件,其中包含已签名的验证链接,点击这个链接,Laravel 将会自动在数据库中记录验证时间并将用户重定向到你设置的页面。

此外,默认 HTTP kernel 中还新增了一个 verified 中间件,用于过滤那些未验证邮箱的用户:

'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,

注:要了解更多关于邮箱验证的实现细节,请参考 完整文档

未登录用户授权

在之前版本的 Laravel 中,对于未登录访客的权限判断,无论是 Gate 还是 Policy,都会自动返回 false 。不过,在 Laravel 5.7 中,你可以通过声明一个可选的类型提示或者将用户参数定义默认设置为 null ,以便访客可以通过授权检查:

Gate::define('update-post', function (?User $user, Post $post) {
    // ...
});

Symfony Dump Server

Laravel 5.7 通过引入扩展包 Laravel Dump Server 在 Laravel 应用中集成了 Symfony 的 dump-server 命令。只需通过运行如下 Artisan 命令就可以启用:

php artisan dump-server

一旦服务器启动,所有对 dump 函数的调用结果将会输出到 dump-server 控制台窗口,而不是显示在浏览器中,从而允许开发者在不打乱 HTTP 响应输出的情况下检查某些值。

通知本地化

Laravel 5.7 允许开发者通过本地化语言发送通知,甚至能够在通知队列中记住本地化设置。

为了实现这个功能, Illuminate\Notifications\Notification 类新增了一个 locale 方法来设置期望语言,应用会在通知被格式化时切换到 locale 设置语言,并在格式化完成后切换回之前的语言:

$user->notify((new InvoicePaid($invoice))->locale('es'));

还可以通过 Notification 门面来本地话多个通知实体:

Notification::locale('es')->send($users, new InvoicePaid($invoice));

URL 生成器 & 可调用语法

除了只接收字符串外,Laravel 的 URL 生成器现在还可以在生成指向控制器动作的URL时接收「可调用」语法:

action([UserController::class, 'index']);

分页器链接

Laravel 5.7 允许开发者控制在每个分页器 URL 窗口中主分页(当前页码)左右各显示多少个额外的链接,默认情况下,在主分页器链接左右各显示三个链接,不过,你可以通过使用 onEachSide 方法里控制这个数值:

{{ $paginator->onEachSide(5)->links() }}

文件系统读写流

Laravel 的文件系统现在集成了 readStreamwriteStream 方法:

Storage::disk('s3')->writeStream(
    'remote-file.zip',
    Storage::disk('local')->readStream('local-file.zip')
);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

结网@改变世界的互联网产品经理

结网@改变世界的互联网产品经理

王坚 / 人民邮电出版社 / 2013-5-1 / 69.00元

《结网@改变世界的互联网产品经理(修订版)》以创建、发布、推广互联网产品为主线,描述了互联网产品经理的工作内容,以及应对每一部分工作所需的方法和工具。产品经理的工作是围绕用户及具体任务展开的,《结网@改变世界的互联网产品经理(修订版)》给出的丰富案例以及透彻的分析道出了从发现用户到最终满足用户这一过程背后的玄机。新版修改了之前版本中不成熟的地方,强化了章节之间的衔接,解决了前两版中部分章节过于孤立......一起来看看 《结网@改变世界的互联网产品经理》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具