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 選項,這將使你很容易找到你的應用程序中所有緩慢的測試。
?–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