Laravel 10:新功能和最新更新
六個(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ī)則:
此外,樣板代碼簡(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ā)之旅的每一步,減輕您可能遇到的任何壓力或顧慮。