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 將持續修復漏洞直至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 進程服務讓測試和執行 CLI 進程成為一個夢幻般的工作。
use Illuminate\Support\Facades\Process; $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 專案帶來最新的PHP 類型提示功能,而且不會破壞框架層面的後向相容性:
可呼叫的驗證規則成為預設規則
從Laravel 10 開始,可呼叫的驗證規則現在是預設的規則。當你透過artisan 建立一個新的驗證規則, 以下是你能在預想中得到的結果:
# Laravel 9 创建了一个规则类,实现了 # Illuminate\Contracts\Validation\Rule 接口 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
選項有助於保留您的快速測試,並協助您修復緩慢的測試,或更好地將它們分組,以便更容易避免一直運行它們。
新字串密碼Helper
Str::password
方法可以生成给定长度的安全、随机的密码。密码将由字母、数字、符号和空格组成。默认情况下,密码的长度为32个字符:
use Illuminate\Support\Str; $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
分支的对比中发现的一些弃用点:
handleDeprecation
方法Pull Request #42590assertTimesSent
方法Pull Request #42592ScheduleListCommand
$defaultName
特性419471eRoute::home
方法Pull Request #42614dispatchNow
功能Pull Request #42591测试 Laravel 10
如果你现在就想开始测试Laravel 10,你可以通过使用--dev
标志将它安装到一个新项目中:
laravel new--dev
升级到 Laravel 10
最简单的升级方法是利用Laravel变化并且它可以自动地始终保持应用程序的更新,或者根据官方文档升级指南。
更多...
你也可以查看官方发布的页面查找可用的最新信息。
以上是Laravel10新特色一文速覽!的詳細內容。更多資訊請關注PHP中文網其他相關文章!