Laravel10新特性一文速覽!

laravel 10現已發布,包括最低要求的php v8.1版本、新的laravel pennant軟件包、可調用的驗證規則、本地類型聲明等等。

Laravel發布計劃

Laravel 9之前,主要的框架版本每年發布兩次,或者大約每六個月發布一次。從Laravel 9開始,核心團隊轉向了年度計劃,并在2022年2月發布了Laravel 9(而不是最初計劃的2021年9月)。

Laravel使用許多由社區驅動的軟件包以及九個Symfony組件來實現框架中的許多功能。Symfony 6.0預計將在11月發布。出于這個原因,我們決定延遲Laravel 9.0的發布直到2022年。通過延遲發布,我們可以將底層的Symfony組件升級到Symfony 6.0,而不必等到2022年9月才能進行此升級。此外,這也更好地為我們未來的發布做好了準備,因為我們每年都是在Symfony發布后的兩個月內進行。

未來,Laravel 將每年發布一個主要版本,包括:

  • Laravel 9: 2022 年 2 月 8 日發布
  • Laravel 10: 2023 年 2 月 14 日發布
  • Laravel 11: 2024 年第一季度發布

Laravel 9 將持續修復漏洞直至 2023 年 8 月 8 日,并持續提供安全修復直至 2024 年 2 月 14 日。

Laravel 10 將提供漏洞修復直至 2024 年 8 月 6 日,并持續提供安全修復直至 2025 年 2 月 14 日。

接下來我們看看 Laravel 10 的一些重大新功能:

Laravel 10 不再支持 PHP 8.0

在 Laravel 10 中,Laravel 框架將不再支持 PHP

Laravel Pennant

Laravel Pennant 是 Laravel 團隊創建的一個包,將隨 Laravel 10 一起發布,為您的應用程序提供特性標志(Feature Flags)。

特性標志使您能夠有信心地逐步推出新的應用程序特性、對新界面設計進行 A/B 測試、補充基于主干的開發策略等等。

這個軟件包是核心團隊提供的官方軟件包陣容中最新的一個,這意味著我們現在擁有一個構建良好、經過測試的軟件包,為我們提供了一些偉大的功能。

Laravel 的進程層

Laravel 9?使測試和運行 CLI 進程成為一個夢幻般的工作。

use IlluminateSupportFacadesProcess;  $result = Process::run('ls -la');  $result->successful(); $result->failed(); $result->exitCode(); $result->output(); $result->errorOutput(); $result->throw(); $result->throwIf($condition);

進程層包括了開箱即用的豐富功能,如:

  • 通過流式的進程方法,在運行前建立一個流程實例
  • 在收到輸出時進行處理
  • 異步進程
  • 進程池
  • 通過 fake() 實現豐富的測試功能
  • 防止測試中出現雜亂進程

測試進程從未如此簡單。

Laravel 10 骨架中的本地類型聲明

在 Laravel 10,Laravel 9。這意味著任何由框架生成的用戶區代碼都會有類型提示和返回類型。我們的文章討論了圍繞該方法的注意事項,我們認為在未來創建新項目時,你會喜歡上增加的類型。

類型的添加方式可以為 Laravel 項目帶來最新的 PHP 類型提示功能,而且不會破壞框架層面的后向兼容性:

  • 返回類型
  • 方法參數
  • 盡可能地刪除多余的注釋
  • 在閉包參數中允許用戶本地類型
  • 不包括已定義類型的屬性

可調用的驗證規則成為默認規則

從 Laravel 10 開始, Laravel 9 現在是默認的規則。 當你通過 artisan 創建一個新的驗證規則時, 以下是你能在預想中得到的結果:

# Laravel 9 創建了一個規則類,實現了 # IlluminateContractsValidationRule 接口 artisan make:rule Uppercase  # Laravel 9 創建一個可調用和隱性規則的標志 artisan make:rule Uppercase --invokable artisan make:rule Uppercase --invokable --implicit  # Laravel 10 默認會創建一個可調用的規則 artisan make:rule Uppercase  # Laravel 10 隱性規則 artisan make:rule Uppercase --implicit

測試的配置文件選項

Laravel 10 的一個新功能是 –profile 選項,這將使你很容易找到你的應用程序中所有緩慢的測試。

Laravel10新特性一文速覽!

?–profile?選項有助于保留您的?Laravel 9?,幫助您修復緩慢的測試,或者更好地對它們進行分組,以便更容易地避免一直運行它們。

字符串密碼Helper

Str::password?方法可以生成給定長度的安全、隨機的密碼。密碼將由字母、數字、符號和空格組成。默認情況下,密碼的長度為32個字符:

use?IlluminateSupportStr;  $password?=?Str::password();  //?'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'  $password?=?Str::password(12);  //?'qwuar>#V|i]N'

Laravel 9的棄用

Laravel 9中標記為已棄用的方法在Laravel 10中被刪除。我們可以期待發行版升級指南概述所有不推薦的方法、潛在影響評估,以及如何升級到更接近發行版。

以下內容是在撰寫本文時, 將Laravel 框架 master 主分支到 9.x 分支的 Laravel 9 中發現的一些棄用點:

  • 移除各種棄用?Laravel 9
  • 移除已棄用日期屬性?Laravel 9
  • 移除?handleDeprecation?方法?Laravel 9
  • 移除過時的?assertTimesSent?方法?Laravel 9
  • 移除過時的?ScheduleListCommand?$defaultName?特性?Laravel 9
  • 移除過時的?Route::home?方法?Laravel 9
  • 移除過時的?dispatchNow?功能?Laravel 9

測試 Laravel 10

如果你現在就想開始測試Laravel 10,你可以通過使用 –dev 標志將它安裝到一個新項目中:

laravel new <your-project-name> --dev

升級到 Laravel 10

最簡單的升級方法是利用?Laravel 9?并且它可以自動地始終保持應用程序的更新,或者根據官方文檔?Laravel 9。

更多…

你也可以查看?Laravel 9?查找可用的最新信息。


原文地址:Laravel 9

譯文地址:Laravel 9

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享