A quick overview of the new features of Laravel10!
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
升级到 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!

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

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

This article guides building robust Laravel RESTful APIs. It covers project setup, resource management, database interactions, serialization, authentication, authorization, testing, and crucial security best practices. Addressing scalability chall

This article provides a comprehensive guide to installing the latest Laravel framework using Composer. It details prerequisites, step-by-step instructions, troubleshooting common installation issues (PHP version, extensions, permissions), and minimu

This article guides Laravel-Admin users on menu management. It covers menu customization, best practices for large menus (categorization, modularization, search), and dynamic menu generation based on user roles and permissions using Laravel's author

This article details implementing OAuth 2.0 authentication and authorization in Laravel. It covers using packages like league/oauth2-server or provider-specific solutions, emphasizing database setup, client registration, authorization server configu

This article guides Laravel developers in choosing the right version. It emphasizes the importance of selecting the latest Long Term Support (LTS) release for stability and security, while acknowledging that newer versions offer advanced features.

The article discusses creating and using custom validation rules in Laravel, offering steps to define and implement them. It highlights benefits like reusability and specificity, and provides methods to extend Laravel's validation system.

The article discusses best practices for deploying Laravel in cloud-native environments, focusing on scalability, reliability, and security. Key issues include containerization, microservices, stateless design, and optimization strategies.

The article discusses creating and customizing reusable UI elements in Laravel using components, offering best practices for organization and suggesting enhancing packages.
