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 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:
fake()
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:
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
分支的 对比 中发现的一些弃用点:
handleDeprecation
方法 Pull Request #42590assertTimesSent
方法 Pull Request #42592ScheduleListCommand
$defaultName
特性 419471eRoute::home
方法 Pull Request #42614dispatchNow
功能 Pull Request #42591测试 Laravel 10
如果你现在就想开始测试Laravel 10,你可以通过使用 --dev
标志将它安装到一个新项目中:
laravel new <your-project-name> --dev
升级到 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!