首页 头条 Laravel 7 即将发布,一起看看有哪些新特性和功能!

Laravel 7 即将发布,一起看看有哪些新特性和功能!

Mar 03, 2020 pm 03:56 PM

Laravel 7 即将发布,一起看看有哪些新特性和功能!

Laravel 7 的正式发布日期为 2020年3月3日。根据 Laravel Framework 每6个月的主要 laravel 版本发布策略(2月和 8月),它是另一个主要版本。它不是 LTS 版本,因此根据 Laravel 版本支持政策,他们提供 2020年9月3日之前的 6个月错误修复,以及直到 2021年3月3日之前的 1年安全问题修复支持。让我们看一下 Laravel 7 的新功能和改进。(laravel技术文章

Laravel 7的新功能

● Laravel Airlock

● 适用于 HTTP 客户端的 Zttp

● CORS 支持

● 自定义 Eloquent Cast

● 流畅的字符串操作

● Blade X

● 可定制的 Stubs

● 查询时间转换

● 多个邮件驱动程序

● 新 Artisan 命令

Laravel 7 中的改进

● 路由模型绑定改进

● 2倍更快的路由

● 数据库队列改进

● Markdown 邮件模板改进

● 以及更多的错误修复和改进。

Laravel Airlock

Laravel Airlock 是用于API身份验证的官方软件包。它提供了简单的令牌基础 API 身份验证,令牌发行,令牌能力,移动应用程序身份验证等。

HTTP客户端的Zttp

使用 Zttp,向 API 发出 HTTP 请求将是更好,更简洁的方法。

发布请求

<?php
use Illuminate\Support\Facades\Http;
$response = Http::post($url);
$response = Http::post($url, [
    &#39;site&#39; => &#39;Laravel Article&#39;,
]);
登录后复制

获取响应

$response = Http::get($url);
$response = Http::get($url,[&#39;foo&#39;=>&#39;bar&#39;]);
登录后复制

带请求头

$response = Http::withHeaders([&#39;foo&#39; => &#39;bar&#39;])->post($url, [
    &#39;baz&#39; => &#39;qux&#39;,
]);
登录后复制

响应

$response[&#39;foo&#39;]
$response->body()
$response->json()
$response->status()
$response->ok()
登录后复制

CORS 支持

现在 Laravel 7 开箱即用地支持 CORS (跨域资源共享)。你应该更了解每个开发者在 API 开发中都遇到过 CORS 问题。现在,Laravel 7 使用配置值自动响应 OPTION 请求。Laravel 7 开箱即用的 HandleCors 中间件可以搞定一切。

自定义 Eloquent Cast

Laravel 7 中的自定义 eloquent casting 是另一个很酷的功能。此功能将使您能够添加自定义 casts。让我们看一下 JSON Caster。

<?php
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
class Json implements CastsAttributes
{
    public function get($model, $key, $value, $attributes)
    {
        return json_decode($value, true);
    }
    public function set($model, $key, $value, $attributes)
    {
        return json_encode($value);
    }
}
登录后复制

现在,我们可以在模型中使用自定义的 eloquent cast 了。

<?php
namespace App;
use App\Casts\Json;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
    protected $casts = [
        &#39;extra&#39; => Json::class,
    ];
}
登录后复制

流畅的字符串操作

在 Laravel 7 中,您可以使用 Illuminate\Support\Str 类来做更多更酷的面向对象的事情。

$currentVersion = (string) Str::of(&#39;  Laravel 6.x &#39;);
return $currentVersion->trim()
        ->replace(&#39;6.x&#39;, &#39;7.x&#39;)
        ->slug();
// laravel-7x
登录后复制

Blade X

Laravel 7 Blade X 功能使您能够制作 class-less 的组件。

生成 x-component

@php($user = $user ?? Auth::user())
@php($size = $size ?? 50)
<img
    class="inline-block rounded-full"
    src="{{ $user->gravatarUrl($size) }}"
    width="{{ $size }}"
    height="{{ $size }}"
/>
登录后复制

Blade x 用法

<x-avatar/>
<x-avatar size="40" />
<x-avatar size="100" />
登录后复制

自定义 Stubs

现在,您可以使用 artisan 命令在 Laravel 7.x 中自定义 stubs。

php artisan stub:publish
登录后复制

查询时间转换

Laravel 7 提供了 withCasts 方法,可帮助您在运行查询时强制转换值。让我们举个例子。

$users = User::select([
    &#39;users.*&#39;,
    &#39;last_posted_at&#39; => Post::selectRaw(&#39;MAX(created_at)&#39;)->whereColumn(&#39;user_id&#39;, &#39;users.id&#39;)
])
->withCasts([&#39;last_posted_at&#39; => &#39;date&#39;])
->get();
登录后复制

多个邮件驱动程序

Laravel 7 将允许您使用单个应用程序设置多个邮件驱动程序。

Mail::mailer(&#39;noreply&#39;)
        ->to($request->user())
        ->send(new PostUpdated($post));
登录后复制

新 Artisan 命令

Laravel 7 中添加了一个新的 artisan 测试命令。新的 artisan 测试命令为您提供了精美的 UX 和有关测试的有用信息。

php artisan test
登录后复制

Laravel 7 中的改进

● 路由模型绑定改进

● 2倍更快的路由

● 数据库队列改进

● Markdown 邮件模板改进

● 以及更多的错误修复和改进。

路由模型绑定改进

自定义 Key

默认情况下,路由模型绑定与 id 字段一起使用。现在您可以自定义它。

Route::get(&#39;posts/{post:slug}&#39;, function (App\Post $post) {
    return $post;
});
登录后复制

自动作用域

Laravel 7 将使用其辨别惯例使用的方法来确认程序中的关系调用,从而自动确定查询的范围以检索嵌套模型。

use App\Post;
use App\User;
Route::get(&#39;api/users/{user}/posts/{post:slug}&#39;, function (User $user, Post $post) {
    return $post;
});
登录后复制

2倍更快的路由

使用 route:cache 时,Laravel 7 的路由匹配性能比 laravel 6 快 2倍

数据库队列改进

Laravel 7 对使用 MySQL 8+ 作为数据库支持队列的应用程序进行了改进。

Markdown 邮件模板改进

使用 Tailwind CSS 调色板,邮件的默认 markdown 模板外观更加新颖。可以根据需要发布和自定义模板。

更多编程相关内容,请关注php中文网编程入门栏目!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)