首頁  >  文章  >  Laravel 7 即將發布,一起看看有哪些新功能和功能!

Laravel 7 即將發布,一起看看有哪些新功能和功能!

藏色散人
藏色散人轉載
2020-03-03 15:56:025461瀏覽

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 郵件範本改善

#● 資料庫佇列改善問題

##● 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中文網

程式入門###欄位! ###
陳述:
本文轉載於:NiZerin。如有侵權,請聯絡admin@php.cn刪除