Laravel 10 is now released, including the minimum required version of PHP v8.1, the new Laravel Pennant package, callable validation rules, local type declarations, and more.
Laravel Release Schedule
Prior to Laravel 9, major framework versions were released twice a year, or roughly every six months. Starting with Laravel 9, the core team shifted to an annual plan and released Laravel 9 in February 2022 (instead of September 2021 as originally planned).
Laravel uses a number of community-driven packages as well as nine Symfony components to implement many features in the framework. Symfony 6.0 is expected to be released in November. For this reason, we have decided to delay the release of Laravel 9.0 until 2022.
By delaying the release, we can upgrade the underlying Symfony components to Symfony 6.0 without having to wait until September 2022 for this upgrade. Additionally, this better prepares us for future releases, as we do it within two months of Symfony's release every year.
Going forward, Laravel will release one major version per year, including:
- Laravel 9: Released on February 8, 2022
- Laravel 10: 2023 Released on February 14, 2024
- Laravel 11: Released in Q1 2024
Laravel 9 will continue to fix vulnerabilities until August 8, 2023, and continue to provide security fixes until February 14, 2024.
Laravel 10 will provide bug fixes until August 6, 2024, and security fixes until February 14, 2025.
Next let’s take a look at some of the major new features of Laravel 10:
Laravel 10 no longer supports PHP 8.0
In Laravel 10, Laravel The framework will no longer support PHP
Laravel Pennant
Laravel Pennant is a package created by the Laravel team and will be released with Laravel 10 to provide feature flags for your application.
Feature flags enable you to incrementally roll out new application features with confidence, A/B test new interface designs, complement trunk-based development strategies, and more.
This package is the latest in the official lineup of packages provided by the core team, which means we now have a well-built, tested package that provides us with some great features .
Laravel's Process Layer
Laravel Process Service Makes testing and running CLI processes a fantastic job.
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);
The process layer includes rich functions out of the box, such as:
- Through the streaming process method, a process instance is established before running
- Process the output when it is received
- Asynchronous process
- Process pool
- Achieve rich testing functions through
fake()
- Prevent clutter in your tests
Testing your processes has never been easier.
Local type declarations in Laravel 10 skeleton
In Laravel 10, application skeleton code will have local type declarations . This means that any userland code generated by the framework will have type hints and return types. Our article discusses the considerations surrounding this approach, and we think you'll appreciate the added types when creating new projects in the future.
The way to add types can bring the latest PHP type hinting function to Laravel projects without destroying the backward compatibility at the framework level:
- Return type
- Method parameters
- Remove redundant comments as much as possible
- Allow user-local types in closure parameters
- Do not include properties of defined types
Callable validation rules become the default rules
Starting with Laravel 10, Callable validation rules are now the default rules. When you create a new validation rule via artisan, here's what you can expect:
# 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
Testing configuration file options
Laravel 10 A new feature is the --profile
option, which will make it easy for you to find all slow tests in your application.
--profile
option helps preserve your fast tests, helping you fix slow tests, or better yet Group them to make it easier to avoid running them all the time.
New string password 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变化 并且它可以自动地始终保持应用程序的更新,或者根据官方文档 升级指南。
更多...
你也可以查看 官方发布的页面 查找可用的最新信息。
The above is the detailed content of A quick overview of the new features of Laravel10!. For more information, please follow other related articles on the PHP Chinese website!

Taskmanagementtoolsareessentialforeffectiveremoteprojectmanagementbyprioritizingtasksandtrackingprogress.1)UsetoolslikeTrelloandAsanatosetprioritieswithlabelsortags.2)EmploytoolslikeJiraandMonday.comforvisualtrackingwithGanttchartsandprogressbars.3)K

Laravel10enhancesperformancethroughseveralkeyfeatures.1)Itintroducesquerybuildercachingtoreducedatabaseload.2)ItoptimizesEloquentmodelloadingwithlazyloadingproxies.3)Itimprovesroutingwithanewcachingsystem.4)ItenhancesBladetemplatingwithviewcaching,al

The best full-stack Laravel application deployment strategies include: 1. Zero downtime deployment, 2. Blue-green deployment, 3. Continuous deployment, and 4. Canary release. 1. Zero downtime deployment uses Envoy or Deployer to automate the deployment process to ensure that applications remain available when updated. 2. Blue and green deployment enables downtime deployment by maintaining two environments and allows for rapid rollback. 3. Continuous deployment Automate the entire deployment process through GitHubActions or GitLabCI/CD. 4. Canary releases through Nginx configuration, gradually promoting the new version to users to ensure performance optimization and rapid rollback.

ToscaleaLaravelapplicationeffectively,focusondatabasesharding,caching,loadbalancing,andmicroservices.1)Implementdatabaseshardingtodistributedataacrossmultipledatabasesforimprovedperformance.2)UseLaravel'scachingsystemwithRedisorMemcachedtoreducedatab

Toovercomecommunicationbarriersindistributedteams,use:1)videocallsforface-to-faceinteraction,2)setclearresponsetimeexpectations,3)chooseappropriatecommunicationtools,4)createateamcommunicationguide,and5)establishpersonalboundariestopreventburnout.The

LaravelBladeenhancesfrontendtemplatinginfull-stackprojectsbyofferingcleansyntaxandpowerfulfeatures.1)Itallowsforeasyvariabledisplayandcontrolstructures.2)Bladesupportscreatingandreusingcomponents,aidinginmanagingcomplexUIs.3)Itefficientlyhandleslayou

Laravelisidealforfull-stackapplicationsduetoitselegantsyntax,comprehensiveecosystem,andpowerfulfeatures.1)UseEloquentORMforintuitivebackenddatamanipulation,butavoidN 1queryissues.2)EmployBladetemplatingforcleanfrontendviews,beingcautiousofoverusing@i

Forremotework,IuseZoomforvideocalls,Slackformessaging,Trelloforprojectmanagement,andGitHubforcodecollaboration.1)Zoomisreliableforlargemeetingsbuthastimelimitsonthefreeversion.2)Slackintegrateswellwithothertoolsbutcanleadtonotificationoverload.3)Trel


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

VSCode Windows 64-bit Download
A free and powerful IDE editor launched by Microsoft

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Zend Studio 13.0.1
Powerful PHP integrated development environment

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),
