Laravel 11.x 延续了框架的现代化演进,重点关注开发效率与简洁性。以下是主要特性:
1. 精简应用骨架
- 配置文件合并:
config/目录仅保留app.php、auth.php、database.php、mail.php等核心文件 - 中间件简化:
app/Http/Kernel.php默认仅保留基础中间件 - 路由文件合并:
web.php与api.php统一为routes.php(仍支持分文件)
php
// 示例:新路由定义方式
Route::get('/', function () {
return view('welcome');
});
Route::middleware('auth')->group(function () {
Route::get('/dashboard', [DashboardController::class, 'index']);
});
2. 模型与数据库增强
-
字符串列默认长度
迁移文件中的string()方法默认长度调整为255(原为255需显式声明)php$table->string('title'); // 自动生成 VARCHAR(255) -
外键约束命名简化
自动生成更短的外键名(如fk_user_id→user_id)
3. 健康检查路由 (Health Route)
-
新增
/up路由端点,用于应用状态监控:phpRoute::up(); // 默认返回 200 OK -
支持自定义检查逻辑:
phpRoute::up(function () { return Cache::has('system_status'); });
4. Artisan 命令优化
-
make:controller自动生成类型提示:php// 生成带依赖注入的控制器 php artisan make:controller UserController --invokable -
model:show命令可视化展示模型关系:bashphp artisan model:show User
5. Blade 组件改进
-
条件属性渲染
支持:attribute="$condition"语法:blade<button :disabled="$isProcessing">提交</button> -
动态 CSS 类
简化类名条件逻辑:blade<div @class(['bg-red-500' => $hasError, 'font-bold' => true])></div>
6. 测试套件增强
-
Pest 测试集成
安装时可选 Pest 作为默认测试框架:bashlaravel new project --pest -
数据库测试并行化
通过ParallelTesting加速测试:phpuse Illuminate\Testing\ParallelTesting; ParallelTesting::setUpTestDatabase(function ($database) { // 每个进程初始化独立数据库 });
7. 依赖升级与弃用
- 最低要求
PHP ≥ 8.2,Composer 2.5+ - 弃用项
移除date_cast模型属性、$dates数组(全面转向$casts)
升级建议
-
使用官方升级工具:
bashcomposer create-project laravel/laravel:^11.0 new-project -
检查兼容性:
bashphp artisan vendor:publish --tag=laravel-upgrade
提示:完整变更请参考 Laravel 官方升级指南。