Home > PHP Framework > Laravel > body text

A quick overview of the new features of Laravel10!

藏色散人
Release: 2023-02-20 19:40:16
forward
3739 people have browsed it

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);
Copy after login

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
Copy after login

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.

A quick overview of the new features of Laravel10!

--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'
Copy after login

Laravel 9的弃用

Laravel 9中标记为已弃用的方法在Laravel 10中被删除。我们可以期待发行版升级指南概述所有不推荐的方法、潜在影响评估,以及如何升级到更接近发行版。

以下内容是在撰写本文时, 将Laravel 框架 master 主分支到 9.x 分支的 对比 中发现的一些弃用点:

测试 Laravel 10

如果你现在就想开始测试Laravel 10,你可以通过使用 --dev 标志将它安装到一个新项目中:

laravel new <your-project-name> --dev
Copy after login

升级到 Laravel 10

最简单的升级方法是利用 Laravel变化 并且它可以自动地始终保持应用程序的更新,或者根据官方文档 升级指南

更多...

你也可以查看 官方发布的页面 查找可用的最新信息。


原文地址:https://laravel-news.com/laravel-10?new

译文地址:https://learnku.com/laravel/t/75297

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!

Related labels:
source:learnku.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!