Laravel 11.x新特性全解析

好的,我们来梳理一下 Laravel 11.x 版本(于 2024 年 3 月发布)的主要新特性和变化:

1. 精简的默认应用骨架

  • 更少的配置文件 : 许多原先独立的配置文件(如 config/cors.php, config/broadcasting.php, config/view.php 等)被移除或合并到了核心的 config/app.php 文件中。框架默认只提供必要的配置。

  • 精简的 bootstrap/app.php: 应用核心逻辑的引导文件被大幅简化。

  • 移除 app/Http/Kernel.php : 原先在 Kernel.php 中定义的 HTTP 中间件和路由中间件现在直接在 bootstrap/app.php 文件中注册。例如:

    php 复制代码
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->web(append: [
            \App\Http\Middleware\HandleInertiaRequests::class,
        ]);
    })
  • 精简的路由文件routes/api.phproutes/channel.php 被移除,默认的路由定义都放在 routes/web.php 中。当然,开发者仍然可以创建和使用 api.php 等文件。

2. 性能优化与默认值调整

  • 更高的内存限制php artisan serve 命令默认的内存限制从 128MB 提升到了 256MB,以更好地支持现代应用。
  • 最低 PHP 版本要求 : Laravel 11 需要 PHP 8.2 或更高版本。
  • 默认启用 SQLiteconfig/database.php 中默认配置并启用了 SQLite 数据库连接,方便快速启动项目。

3. 改进的 make:model 命令

当使用 make:model 创建模型时,如果同时传递 --migration-m 标志,Laravel 11 会默认同时生成一个模型工厂 (--factory) 和一个数据填充器 (--seed),简化了测试数据的准备流程。

4. 新的 php artisan install 命令

引入了一个新命令 install,用于快速安装常见的、可选的 Laravel 功能包和配置:

  • api: 安装 Laravel Sanctum 并配置 API 认证。
  • breeze: 安装 Laravel Breeze 认证脚手架。
  • dev: 安装 Laravel 开发工具包(包含 ignition 错误页面等)。
  • inertia: 安装 Inertia.js 支持。
  • pest: 安装 Pest 测试框架。
  • vue / react: 安装对应的前端脚手架。 例如:php artisan install inertia --vue 会安装 Inertia.js 和 Vue 的支持。

5. 原生类型声明支持

框架生成的许多类(如控制器、中间件等)现在默认包含了原生 PHP 类型声明(如 string $id),鼓励更现代化的 PHP 编码实践,提高代码的可读性和健壮性。

6. 测试框架更新

  • Pest 作为可选默认测试框架 : 虽然 PHPUnit 仍然是核心测试框架,但 Laravel 11 通过 php artisan install pest 提供了将 Pest 设置为默认测试框架的便捷方式。
  • 更精简的 phpunit.xml 文件: 默认的 PHPUnit 配置文件被简化。

7. 健康检查路由

默认添加了一个 /up 健康检查端点。该端点返回一个简单的 JSON 响应 {"status": "ok"},可用于监控应用的基本运行状态(如负载均衡器健康检查)。

8. 调度器改进

app/Console/Kernel.php 中的 schedule 方法现在支持类型提示:

php 复制代码
use Illuminate\Console\Scheduling\Schedule;
protected function schedule(Schedule $schedule): void
{
    $schedule->command('inspire')->hourly();
}

总结

Laravel 11 的核心目标是 简化现代化 。它通过移除不必要的默认配置和文件,减少项目启动时的"噪音",同时引入了更现代的 PHP 特性(如类型声明)和工具链(如 Pest)。php artisan install 命令大大简化了添加常见功能的过程。这些变化使得新项目结构更清晰,同时也为开发者提供了构建现代、健壮应用所需的工具。

相关推荐
两个人的幸福3 小时前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo2 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack2 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982073 天前
PHP 扩展——从入门到理解
php
鹏仔先生4 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
云水一下4 天前
从零开始学 PHP 系列(一):PHP 的前世今生与开发环境搭建
开发语言·php
xingpanvip4 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
酉鬼女又兒4 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php
dog2504 天前
不要再继续优化 TCP
网络协议·tcp/ip·php
Channing Lewis4 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel