好的,我们来梳理一下 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.php和routes/channel.php被移除,默认的路由定义都放在routes/web.php中。当然,开发者仍然可以创建和使用api.php等文件。
2. 性能优化与默认值调整
- 更高的内存限制 :
php artisan serve命令默认的内存限制从 128MB 提升到了 256MB,以更好地支持现代应用。 - 最低 PHP 版本要求 : Laravel 11 需要 PHP 8.2 或更高版本。
- 默认启用 SQLite :
config/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 命令大大简化了添加常见功能的过程。这些变化使得新项目结构更清晰,同时也为开发者提供了构建现代、健壮应用所需的工具。