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 命令大大简化了添加常见功能的过程。这些变化使得新项目结构更清晰,同时也为开发者提供了构建现代、健壮应用所需的工具。

相关推荐
2601_965798475 小时前
Salient Theme Setup Guide for Fast Creative WordPress Sites
数据库·web3·php·wordpress
xixiaoyunya11 小时前
中小微企业轻量组网方案的技术选型与实践:从传统专线到软定义隧道的成本与效能分析
服务器·php·apache
知行产研12 小时前
中国矿山无人驾驶出海的三重门
数据库·mysql·php
前进的程序员14 小时前
告别Copilot?Codex本地化部署指南
开源·php·copilot·codex
weixin_BYSJ198714 小时前
springboot智慧公共交通系统---附源码51123
java·javascript·spring boot·python·django·flask·php
外滩运维专家1 天前
通配符证书到期,阿里云上几个服务的证书怎么一次换完
运维·开发语言·nginx·https·php·消息推送
郑州光合科技余经理1 天前
海外版多语言团购系统架构:主数据互通与核销边界
java·开发语言·前端·后端·系统架构·php·ai编程
heimeiyingwang1 天前
【架构实战】Kubernetes网络模型深度解析:从Pod通信到Ingress网关实战
开发语言·架构·php
运维行者_2 天前
预测性云监控怎么做?AI驱动的7大核心能力与落地路径
服务器·开发语言·网络·数据库·人工智能·python·php
eggrall2 天前
Socket编程UDP
网络协议·udp·php