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

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

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

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

Laravel provides a comprehensive Auth framework for implementing user login functions, including: Defining user models (Eloquent model), creating login forms (Blade template engine), writing login controllers (inheriting Auth\LoginController), verifying login requests (Auth::attempt) Redirecting after login is successful (redirect) considering security factors: hash passwords, anti-CSRF protection, rate limiting and security headers. In addition, the Auth framework also provides functions such as resetting passwords, registering and verifying emails. For details, please refer to the Laravel documentation: https://laravel.com/doc

How does Laravel play a role in backend logic? It simplifies and enhances backend development through routing systems, EloquentORM, authentication and authorization, event and listeners, and performance optimization. 1. The routing system allows the definition of URL structure and request processing logic. 2.EloquentORM simplifies database interaction. 3. The authentication and authorization system is convenient for user management. 4. The event and listener implement loosely coupled code structure. 5. Performance optimization improves application efficiency through caching and queueing.

Article summary: This article provides detailed step-by-step instructions to guide readers on how to easily install the Laravel framework. Laravel is a powerful PHP framework that speeds up the development process of web applications. This tutorial covers the installation process from system requirements to configuring databases and setting up routing. By following these steps, readers can quickly and efficiently lay a solid foundation for their Laravel project.

In the Laravel framework version selection guide for beginners, this article dives into the version differences of Laravel, designed to assist beginners in making informed choices among many versions. We will focus on the key features of each release, compare their pros and cons, and provide useful advice to help beginners choose the most suitable version of Laravel based on their skill level and project requirements. For beginners, choosing a suitable version of Laravel is crucial because it can significantly impact their learning curve and overall development experience.

Want to learn the Laravel framework, but suffer from no resources or economic pressure? This article provides you with free learning of Laravel, teaching you how to use resources such as online platforms, documents and community forums to lay a solid foundation for your PHP development journey from getting started to master.

The Laravel framework has built-in methods to easily view its version number to meet the different needs of developers. This article will explore these methods, including using the Composer command line tool, accessing .env files, or obtaining version information through PHP code. These methods are essential for maintaining and managing versioning of Laravel applications.

Laravel and ThinkPHP are both popular PHP frameworks and have their own advantages and disadvantages in development. This article will compare the two in depth, highlighting their architecture, features, and performance differences to help developers make informed choices based on their specific project needs.
