轉載自 Laravel 論壇: https://learnku.com/laravel/t...
書寫這篇文章之時, Laraavel 8 還沒有正式的發佈出來, 但它剛剛在Laracon Online上宣佈了.php
這裏是新的版本中將會提供的一些新增功能的列表 🔥laravel
不久前, Taylor Otwell 在Twitter上發起了一項民意調查, 詢問社區是否要將全部的模型都放在app/Models
文件夾中或者使用默認的app/
目錄, 大多數人表示他們將模型放在app/Models
裏.數據庫
多虧了此次調查, Laravel 8將默認包含app/Models
目錄.數組
若是您使用php artisan make:model SomeModel
命令建立新模型, 該命令會將您的模型存放在app/Models
目錄中.緩存
須要注意的是,若是你不喜歡 app/Models
目錄而且刪除了它,使用 artisan
命令建立新的模型的時候,會像以前的 Laravel 版本同樣直接添加到 app/
目錄下。安全
路由緩存工做的方式是將全部路由都放入到一個大型的 PHP 數組中,這樣效率更高。cookie
在以前,若是在路由文件中使用了 closure ,路由緩存不會啓用,可是在 Laravel 8 中,路由緩存能夠正常使用!架構
這樣,就能夠隨時緩存路由!app
php artisan down
命令有了一些至關不錯的改進。composer
對於之前的版本,爲了只容許某些人訪問該網站,必須使用白名單功能,如本文中此處所述:
而在 Laravel 8,有一個比IP白名單更方便使用的方法,你能夠自定義一個 secret 。要配置它,你須要作的就是:
php artisan down --secret=YOUR_SECRET_HERE
確保使用安全字符串替換 YOUR_SECRET_HERE
部分!
以後要訪問處於維護模式的站點,請訪問 yourdomain.com/YOUR_SECRET_HERE
,這會生成一個帶有 secret 的 cookie 可以讓您像往常同樣瀏覽網站!
這是一個讓你的網站處於維護模式的好方法,可是仍然容許一些人能夠訪問它!
php artisan down
命令的另外一個很好的新增就是,你能夠能夠預渲染維護頁面,這樣,即便您運行 composer update
,您的最終用戶仍會看到您的維護頁面,而不是一些錯誤。
爲此,只需運行:
php artisan down --render="errors::503"
這樣你能夠更大刀闊斧的進行維護,用戶只會看到更友好的維護頁面而不是一堆報錯頁面!
更炫酷的就是,你還能夠將標誌組合在一塊兒。例如,你運行如下命令,在給渲染的頁面添加 secret 的同時還能夠更改狀態碼:
php artisan down --render="errors::503" --status=200 --secret=YOUR_SECRET_HERE
在 Laravel 8 中有一種新的方式訂閱頻率限制。他具備更大的靈活性,同時與以前發佈的限流中間件 API 保持兼容.
他的工做原理首先是定義頻率限制器:
use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Support\Facades\RateLimiter; RateLimiter::for('login', function (Request $request) { return Limit::perMinute(100); });
而後,你能夠將 RateLimitter
看成一個標準中間件:
Route::middleware(['throttle:login'])->group(function () { Route::post('/login', function () { // }); });
這對於 APIs 也一樣方便,例如你能夠在其中限制用戶每分鐘能夠發送的請求數量。
模式轉儲大概是我最喜歡的特性之一,我能夠藉助 Laravel Voyager 輕鬆上手使用他。
你須要使用的 artisan 命令是:
php artisan schema:dump
以上命令將在 database/schema
文件夾中生成一個架構文件,該文件基本上是整個數據庫的結構。
你還能夠轉儲當前數據庫模式,而後經過添加 --prune
標誌來縮減全部現有的遷移:flag:
php artisan schema:dump --prune
以上內容將刪除你全部的舊遷移,並生成一個架構轉儲文件。若是你有不少遷移文件,這是清除遷移文件的絕佳方法!
以後,你能夠再次開始添加新的遷移,它將照常工做。一旦達到必定數量並想要清除遷移文件夾,就能夠再次運行 schema:dump
命令並對其進行更新。
Laravel Jetstream 是 Laravel 的新應用程序支架。它是免費和開源的。
Jetstream 爲您的新項目提供了更好的起點。它包括如下組件:
Laravel Jetstream 取代了可用於先前 Laravel 版本的舊版 Laravel 身份驗證 UI 。
Jetstream 使用 Tailwind CSS,你選擇 Livewire 或 Inertia 。
我認爲,最顯着的改進之一是 Laravel 的 任務分批功能。
如今,它容許你運行一批任務 ,此後,一旦一批任務完成執行,就執行一些操做。例如:
use App\Jobs\ProcessPodcast; use App\Podcast; use Illuminate\Bus\Batch; use Illuminate\Support\Facades\Batch; use Throwable; $batch = Bus::batch([ new ProcessPodcast(Podcast::find(1)), new ProcessPodcast(Podcast::find(2)), ])->then(function (Batch $batch) { // 全部任務成功完成... })->catch(function (Batch $batch, Throwable $e) { // 第一批任務失敗... })->finally(function (Batch $batch) { // 批處理執行完畢... })->dispatch(); return $batch->id;
任務批處理的更多相關信息,你能夠閱讀官方的 [[隊列文檔]](https://learnku.com/docs/lara... "[隊列文檔]") 。
還有其餘一些改進,例如默認分頁如今使用 TailwindCSS ,改進了 php artisan serve
命令,新的模型工廠類等等。
看到 Laravel 付出了不少努力,這真是太棒了。
有關更多信息,請確保在此處查看官方發行說明:
https://learnku.com/docs/lara...
另外,請確保安裝 Laravel 8 並使用新功能!
討論請前往專業的 Laravel 論壇: https://learnku.com/laravel/t...