内容简介: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 的文件系统现在集成了 readStream
和 writeStream
方法:
Storage::disk('s3')->writeStream( 'remote-file.zip', Storage::disk('local')->readStream('local-file.zip') );
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 多线程一 入门序言
- [ Laravel 5.7 文档 ] 序言 —— 贡献指南
- [ Laravel 5.7 文档 ] 序言 —— 升级指南
- cinatra发布新版本
- 如何阅读OpenStack源码(更新版)
- 新版任你发,我用Java 8!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。