您好,登錄后才能下訂單哦!
這篇文章主要介紹了Laravel 8有哪些新特性,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Laravel 8 已于昨天正式發布(非 LTS 版本),本次主版本發布引入了 Laravel Jetstream、模型類目錄、模型工廠類、遷移文件壓縮、頻率限制優化、時間測試輔助函數、動態 Blade 組件等新特性。
注:有同學反饋為什么 Laravel 版本發布這么頻繁,那是因為從 Laravel 6 開始引入了新的版本發布周期,具體可參考學院君之前發布的這篇教程:Laravel 6 之后新版本的發布周期介紹。
下面我們一起來速覽下這些新特性:
Laravel Jetstream 是在之前版本上進行優化和全新設計的 Laravel UI 腳手架代碼:
其中包含了登錄、注冊、郵箱驗證、雙因子認證(2FA)、會話管理、基于 Laravel Sanctum 的 API 支持、以及可選的團隊管理等功能。
Jetstream 使用的 CSS 框架是 Tailwind CSS,并且提供了 Livewire 和 Inertia 腳手架選項,你可以任選其一進行前端組件開發。
Laravel 8 終于在 app
目錄下引入了 Models
子目錄來存放模型類文件,所有通過 make:model
命令生成的模型類以后默認都會存放在這個目錄下;不過,如果你選擇刪除這個目錄,新生成的模型類將仍然存放到 app
目錄下。
從 Laravel 8 開始,Eloquent 模型工廠將基于類進行管理,從而支持不同工廠之間的關聯關系,新的模型工廠調用語法如下所示,相比之前可讀性更好:
use App\Models\User;
User::factory()->count(50)->create();
// 使用工廠類中定義的 "suspended" 關聯方法
User::factory()->count(5)->suspended()->create();
隨著應用功能越來越復雜,需要創建越來越多的數據庫遷移文件,可能多至上百個,管理起來有點麻煩,從 Laravel 8 開始,你可以將它們壓縮到單個 SQL 文件中,該 SQL 文件會在運行遷移命令之前執行,然后再執行其他未壓縮的遷移文件。該功能可以有效降低遷移文件的數量,并且在測試時提升性能。
Laravel 8 優化了之前已經存在的訪問頻率限制功能 —— 支持向后兼容 throttle
中間件,并且提供了更高的靈活性。Laravel 8 引入了一個可以通過門面定義的訪問頻率限制器:
use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;
RateLimiter::for('global', function (Request $request) {
return Limit::perMinute(1000);
});
正如你所看到的,for
方法中持有 HTTP 請求示例,因此你可以完全動態控制請求頻率。
在 Laravel 中,一直都可以通過 PHP Carbon 庫完全控制時間的修改,Laravel 8 則在此基礎上往前更進一步 —— 在測試時使用一個更加方便的輔助函數來操作時間:
// 穿越到未來...
$this->travel(5)->milliseconds();
$this->travel(5)->seconds();
$this->travel(5)->minutes();
$this->travel(5)->hours();
$this->travel(5)->days();
$this->travel(5)->weeks();
$this->travel(5)->years();
// 穿越到過去...
$this->travel(-5)->hours();
// 穿越到指定時間...
$this->travelTo(now()->subHours(6));
// 回到現在...
$this->travelBack();
使用這些方法時,時間會在每個測試之間重置。
有時候你可能需要在運行時動態渲染 Blade 組件,Laravel 8 提供了一個 <x-dynamic-component/>
組件來實現這個功能:
<x-dynamic-component :component="$componentName" class="mt-4" />
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Laravel 8有哪些新特性”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。