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 進程服務 讓測試和執行 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
分支的 对比 中发现的一些弃用点:
- 移除各种弃用 Pull Request #41136
- 移除已弃用日期属性 Pull Request #42587
- 移除
handleDeprecation
方法 Pull Request #42590 - 移除过时的
assertTimesSent
方法 Pull Request #42592 - 移除过时的
ScheduleListCommand
$defaultName
特性 419471e - 移除过时的
Route::home
方法 Pull Request #42614 - 移除过时的
dispatchNow
功能 Pull Request #42591
测试 Laravel 10
如果你现在就想开始测试Laravel 10,你可以通过使用 --dev
标志将它安装到一个新项目中:
laravel new <your-project-name> --dev</your-project-name>
升级到 Laravel 10
最简单的升级方法是利用 Laravel变化 并且它可以自动地始终保持应用程序的更新,或者根据官方文档 升级指南。
更多...
你也可以查看 官方发布的页面 查找可用的最新信息。
以上是Laravel10新特色一文速覽!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Laravel10IntroducessEveralKeyFeatUrestHatenHanceWebDevelopment.1)LazyCollectionsAllyCollefficeProcesingOflargeFlargedAtasetSwithSwithOutloadingAllRecordSintomeMemory.2)the Make:Model Model Moged-and-Mogration'ArtisanCommandSancancMommandSimplififieScreatingModeltigation.3)

laravelmigrationssshouldbeusedbecausetheystreamlinedeplupment,nesurecresistencyAcrossenviments和simplifyCollaborationAndDeployment.1)shemallogragrammatonofdatabaseschemachanges,ReeducingErrors.2)MigrigationScanBeverCanbeverSionConconconconcontrollin.2)

SoftDeletesinLaravelimpactperformancebycomplicatingqueriesandincreasingstorageneeds.Tomitigatetheseissues:1)Indexthedeleted_atcolumntospeedupqueries,2)Useeagerloadingtoreducequerycount,and3)Regularlycleanupsoft-deletedrecordstomaintaindatabaseefficie

Laravelmigrationsarebeneficialforversioncontrol,collaboration,andpromotinggooddevelopmentpractices.1)Theyallowtrackingandrollingbackdatabasechanges.2)Migrationsensureteammembers'schemasstaysynchronized.3)Theyencouragethoughtfuldatabasedesignandeasyre

Laravel的軟刪除功能通過標記記錄而非實際刪除來保護數據。 1)在模型中添加SoftDeletestrait和deleted_at字段。 2)使用delete()方法標記刪除,使用restore()方法恢復。 3)查詢時使用withTrashed()或onlyTrashed()包含軟刪除記錄。 4)定期清理超過一定時間的軟刪除記錄以優化性能。

laravelmigrationSareversionControlfordatabaseschemas,允許Roducibleandreversiblechanges.tousethem:1)creatighatsanmake:遷移',2)定義chemachangesinthe'up()

Laravelmigrationsmayfailtorollbackduetodataintegrityissues,foreignkeyconstraints,orirreversibleactions.1)Dataintegrityissuescanoccurifamigrationaddsdatathatcan'tbeundone,likeacolumnwithadefaultvalue.2)Foreignkeyconstraintscanpreventrollbacksifrelatio


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

WebStorm Mac版
好用的JavaScript開發工具