Laravel 10:新功能和最新更新

言鼎科技 2023-05-25 517

六個(gè)月發(fā)布一次。然而,在 2022 年 2 月 Laravel 9 發(fā)布后,核心團(tuán)隊(duì)轉(zhuǎn)向了年度發(fā)布時(shí)間表,如下所示:

?? Laravel 9:2022 年 2 月 8 日,
?? Laravel 10:2023 年 2 月 13 日,
?? Laravel 11:2024 年 2 月 6 日

根據(jù)Laravel 官方新聞頁(yè)面,Laravel 9 將在 2023 年 8 月 8 日之前收到預(yù)定的錯(cuò)誤修復(fù),并在 2024 年 2 月 6 日之前收到安全修復(fù)。同時(shí),Laravel 10 預(yù)計(jì)將在 2024 年 8 月 6 日之前收到錯(cuò)誤修復(fù),并在 2024 年 8 月 6 日之前收到安全修復(fù)。 2025 年 2 月 4 日。

Laravel 10 的新特性:最新功能和更新

框架背后的核心團(tuán)隊(duì)始終致力于為用戶(hù)帶來(lái)最好的,這就是為什么在應(yīng)用程序或程序包中引用框架或其組件時(shí)建議使用“^10.0”等版本限制的原因。這是因?yàn)檩^新的版本可能會(huì)帶來(lái)值得注意的更改和更新。當(dāng)前的 Laravel 10 還具有多項(xiàng)實(shí)質(zhì)性改進(jìn),這將使產(chǎn)品所有者受益。讓我們仔細(xì)看看這些變化:

?? 不再支持 PHP 8.0

Laravel 10 不再支持 PHP 8.0,必須升級(jí)到 PHP 8.1 或 8.2。雖然沒(méi)有必要在 Laravel 發(fā)布后立即將您的 Laravel 應(yīng)用程序更新到最新版本。但是,仍然建議進(jìn)行徹底的測(cè)試,尤其是對(duì)于有付費(fèi)客戶(hù)或員工的項(xiàng)目。此外,對(duì) Predis v1 的支持已隨 PHP 8.0 一起停止,您必須升級(jí)到 Predis v2。

?? 引入了 Laravel 三角旗

Laravel Pennat 是一個(gè)簡(jiǎn)單且輕量級(jí)的功能標(biāo)志包,可讓您輕松地在應(yīng)用程序中推出新功能。包括A/B測(cè)試接口設(shè)計(jì),支持基于主干的開(kāi)發(fā)策略等。功能標(biāo)志允許在運(yùn)行時(shí)打開(kāi)或關(guān)閉功能而不更改代碼。

?? 簡(jiǎn)單的流程處理

Laravel 為 Symphony Process 組件提供了一個(gè)簡(jiǎn)單而廣泛的 API,使您能夠輕松地在 Laravel 應(yīng)用程序中運(yùn)行外部進(jìn)程。此過(guò)程功能解決了常見(jiàn)的用例,提供了高度改進(jìn)的開(kāi)發(fā)體驗(yàn)。

?? 默認(rèn)可調(diào)用驗(yàn)證規(guī)則

使用 Laravel 9,在創(chuàng)建新的 Invokable 規(guī)則時(shí),必須在 artisan 命令之后添加 –invokable 標(biāo)志。然而,在 Laravel 10 中,您可以簡(jiǎn)單地運(yùn)行以下命令來(lái)創(chuàng)建一個(gè)新的 Invokable 規(guī)則:

Laravel 10:新功能和最新更新
php artisan make:rule 自定義規(guī)則

此外,樣板代碼簡(jiǎn)單易懂,使開(kāi)發(fā)人員創(chuàng)建自己的自定義驗(yàn)證規(guī)則的難度降低。

?? 帶有類(lèi)型聲明的應(yīng)用程序骨架代碼

過(guò)去,Laravel 在其骨架代碼中使用 DocBlocks 來(lái)清楚地解釋特定代碼的功能及其傳遞的響應(yīng)或參數(shù)。然而,使用最新的類(lèi)型聲明,框架內(nèi)的所有用戶(hù)代碼現(xiàn)在都將具有類(lèi)型提示和返回類(lèi)型。這些增強(qiáng)功能具有額外的好處,并且不會(huì)影響核心框架的向后兼容性。這包括方法參數(shù)、返回類(lèi)型、可行時(shí)消除不必要的注釋、排除類(lèi)型屬性以及允許用戶(hù)訪(fǎng)問(wèn)閉包參數(shù)。

?? 移除了 dispatchNow()

在 Laravel 10 中,'dispatchNow()'方法已被刪除,因?yàn)樗?Laravel 9 中被棄用,取而代之的是'dispatchSync()'。必須在所有現(xiàn)有項(xiàng)目中替換它,因?yàn)樗鼧?gòu)成了重大更改,但解決方案很簡(jiǎn)單。

?? Laravel 9 的棄用

隨著最近對(duì) Laravel 的更新,該團(tuán)隊(duì)正在逐步淘汰 Laravel 10 分支中已棄用的方法,這些方法存在于 Laravel 9 中。有關(guān)升級(jí)過(guò)程的 Laravel 文檔的更新,包括所有已棄用方法和包的列表,存在于文檔。那些計(jì)劃將他們的項(xiàng)目升級(jí)到 Laravel v10 的人將需要用一種新的方法重寫(xiě)他們的代碼以達(dá)到預(yù)期的結(jié)果。從 9 到 master 分支的一些棄用和刪除包括:

  • 路線(xiàn)::主頁(yè)方法, 在 Laravel 9 中被棄用

  • 獲取基礎(chǔ)查詢(xún)方法,它有一個(gè) toBase 等價(jià)物

  • 維護(hù)模式異常類(lèi),不再使用

  • 模擬應(yīng)用服務(wù)特征

  • 郵件::失敗郵件中的方法假

  • 使用建議$演員表而不是棄用$日期財(cái)產(chǎn)

  • 斷言發(fā)送時(shí)間()方法

  • 支持Predis 1 和 doctrine/dbal 2不再可用

  • 所有相關(guān)的棄用學(xué)說(shuō)/dbal因?yàn)?Laravel 已經(jīng)放棄了對(duì)版本 2 的支持。

你應(yīng)該升級(jí)到 Laravel 10 嗎?

請(qǐng)務(wù)必注意,Laravel 是一個(gè)開(kāi)源框架,因此每次您在設(shè)備上安裝一個(gè)新實(shí)例時(shí),您都擁有代碼庫(kù)。即使您的版本不再受支持,您的應(yīng)用程序仍可運(yùn)行。但是,您將負(fù)責(zé)自行維護(hù)該版本。建議優(yōu)先考慮穩(wěn)定性而不是升級(jí)框架。只有在以下情況下才考慮升級(jí)到 Laravel 10:

  • 您當(dāng)前的 Laravel 應(yīng)用程序穩(wěn)定且運(yùn)行正常。

  • 升級(jí)將帶來(lái)必要的功能或解決可增強(qiáng)應(yīng)用程序性能的嚴(yán)重錯(cuò)誤。

  • 在生產(chǎn)環(huán)境中實(shí)施升級(jí)之前,您已經(jīng)對(duì)您的應(yīng)用程序進(jìn)行了全面測(cè)試。

如何從 Laravel 9 升級(jí)到 Laravel 10

隨著 Laravel v10 的正式發(fā)布,使用 Laravel 10.x Shift 將您當(dāng)前的 Laravel 應(yīng)用程序升級(jí)到新版本將變得輕而易舉。該工具可自動(dòng)從 Laravel 9 升級(jí)到 Laravel 10,為您節(jié)省多達(dá) 2 小時(shí)的寶貴時(shí)間。重要的是要注意 Laravel 和 Laravel 10.x Shift 都會(huì)收到定期更新,那些使用 Shift 的人可以在需要時(shí)請(qǐng)求重新運(yùn)行。

??要求

要將您當(dāng)前的 Laravel 應(yīng)用程序升級(jí)到 Laravel 10,必須滿(mǎn)足一些基本要求:

  • 您的 Laravel 應(yīng)用程序必須在 Laravel 9 或更高版本上

  • 您的服務(wù)器必須安裝 PHP 8.1 或更高版本。

?? 核心升級(jí)

Shift 自動(dòng)化了 Laravel 升級(jí)指南中概述的許多升級(jí),包括 -

  • Laravel 核心項(xiàng)目文件升級(jí)

  • 更改接口的新方法

  • 向 Laravel 應(yīng)用程序添加 PHP 類(lèi)型的提示

  • 將棄用的 $dates 屬性轉(zhuǎn)換為 $casts

  • 更新 Laravel 10 和 PHP 8.1 的核心依賴(lài)項(xiàng)

  • 刪除 PHP DocBlocks 中的冗余輸入

  • 在應(yīng)用程序代碼中檢測(cè)到已棄用的代碼。

?? 額外升級(jí)

除了核心升級(jí)外,Shift 還提供 Laravel 升級(jí)指南中提到的額外升級(jí),例如:

  • PHP 語(yǔ)法的現(xiàn)代化,包括使用 null 安全運(yùn)算符和短數(shù)組

  • 能夠應(yīng)用您喜歡的代碼風(fēng)格

  • 采用元組語(yǔ)法和基于類(lèi)的路由

  • 轉(zhuǎn)換為匿名遷移

  • PHPUnit 9 所需的自動(dòng)更改

  • Faker 屬性訪(fǎng)問(wèn)到方法調(diào)用的轉(zhuǎn)換

  • 更新配置文件以反映 Laravel 10 版本

  • 增加了流行包的依賴(lài)性約束。

?? 手動(dòng)升級(jí)

雖然 Laravel 10.x Shift 旨在自動(dòng)化盡可能多的升級(jí);可能有些更新無(wú)法自動(dòng)完成。在這種情況下,它會(huì)檢測(cè)這些更新并在拉取請(qǐng)求中以評(píng)論的形式提供詳細(xì)說(shuō)明,概述手動(dòng)實(shí)施的必要步驟。

盡管 Shift 努力檢測(cè)并自動(dòng)升級(jí)流行的依賴(lài)項(xiàng),但仍可能需要手動(dòng)實(shí)施。建議查看更改日志以了解依賴(lài)項(xiàng)和任何其他更改,以確保升級(jí)成功。

結(jié)論

我們對(duì) Laravel 10 的新特性的概述到此結(jié)束,包括它的特性、更新和要求。我們希望這篇博文能讓您深入了解最新版本的框架。但是,如果您是企業(yè)主,不確定是否將現(xiàn)有的 Laravel 應(yīng)用程序升級(jí)到 Laravel 10,或者如果您正在考慮一個(gè)新項(xiàng)目并且想知道 Laravel 是否是滿(mǎn)足您需求的正確解決方案,請(qǐng)聘請(qǐng)像 Bacancy 這樣的 Laravel 開(kāi)發(fā)公司我們的專(zhuān)家團(tuán)隊(duì)將指導(dǎo)您完成 Web 應(yīng)用程序開(kāi)發(fā)之旅的每一步,減輕您可能遇到的任何壓力或顧慮。

The End