Laravel11.x新特性全解析

Laravel 11.x 延续了框架的现代化演进,重点关注开发效率与简洁性。以下是主要特性:


1. 精简应用骨架

  • 配置文件合并:config/ 目录仅保留 app.phpauth.phpdatabase.phpmail.php 等核心文件
  • 中间件简化:app/Http/Kernel.php 默认仅保留基础中间件
  • 路由文件合并:web.phpapi.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_iduser_id


3. 健康检查路由 (Health Route)

  • 新增 /up 路由端点,用于应用状态监控:

    php 复制代码
    Route::up(); // 默认返回 200 OK
  • 支持自定义检查逻辑:

    php 复制代码
    Route::up(function () {
      return Cache::has('system_status');
    });

4. Artisan 命令优化

  • make:controller 自动生成类型提示:

    php 复制代码
    // 生成带依赖注入的控制器
    php artisan make:controller UserController --invokable
  • model:show 命令可视化展示模型关系:

    bash 复制代码
    php 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 作为默认测试框架:

    bash 复制代码
    laravel new project --pest
  • 数据库测试并行化
    通过 ParallelTesting 加速测试:

    php 复制代码
    use Illuminate\Testing\ParallelTesting;
    
    ParallelTesting::setUpTestDatabase(function ($database) {
      // 每个进程初始化独立数据库
    });

7. 依赖升级与弃用

  • 最低要求
    PHP ≥ 8.2,Composer 2.5+
  • 弃用项
    移除 date_cast 模型属性、$dates 数组(全面转向 $casts

升级建议

  1. 使用官方升级工具:

    bash 复制代码
    composer create-project laravel/laravel:^11.0 new-project
  2. 检查兼容性:

    bash 复制代码
    php artisan vendor:publish --tag=laravel-upgrade

提示:完整变更请参考 Laravel 官方升级指南

相关推荐
m0_7202450116 小时前
1543.统计好三元组(简单)
开发语言·算法
叠层归一研究院17 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
明朝百晓生17 小时前
Deep RL learning[2026/8]
开发语言·javascript·人工智能
weixin-a1530030831618 小时前
python-装饰器
开发语言·python
我的xiaodoujiao18 小时前
快速学习Python基础知识详细图文教程17--类型注解和断点调试
开发语言·python·学习·测试工具
叠层归一研究院18 小时前
AGI 系统(五):多主体 AGI 网络 — 分布式符号边界上的时序差同构传播
分布式·php·agi
leoZ23120 小时前
AI 辅助开发的五道坎
开发语言·人工智能·视觉检测·bert·php·超分辨率重建·openvino
程序员老陆21 小时前
Qt的QThread::usleep和FFmpeg的libavutil模块的av_usleep哪个精度高一些?
开发语言·qt·ffmpeg·音视频
2601_9638699521 小时前
【计算机毕业设计】基于Java的相框定制系统的设计与实现
java·开发语言·课程设计
名字还没想好☜1 天前
Go 的 unsafe.Pointer 实战:零拷贝 []byte↔string 转换与三条铁律
开发语言·后端·golang·go·unsafe