You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Laravel 9升级至10:同步更新vendor外项目代码

Laravel 9 升级到 Laravel 10 完整操作指南

一、Composer 依赖更新(vendor目录同步)

  1. 修改项目根目录下的composer.json文件:
    • 将laravel/framework的版本约束改为^10.0
    • 确保PHP版本要求更新为>=8.1(Laravel 10 最低要求PHP 8.1)
    • 同步调整其他依赖包(如laravel/sanctum、laravel/fortify等官方扩展)至支持Laravel 10的版本
  2. 执行更新命令:
    composer update laravel/framework:^10.0 --with-all-dependencies
    
    若出现依赖冲突,需逐个排查第三方包,升级到兼容Laravel 10的版本后重新执行。

二、vendor外项目代码同步修改

结合Laravel 9到10的核心文件变更,重点调整以下内容:

1. app/Console/Kernel.php

修改schedule方法的返回类型声明,必须返回Schedule实例:

// Laravel 9 写法
protected function schedule(Schedule $schedule)
{
    // 你的调度任务
}

// Laravel 10 需修改为
protected function schedule(Schedule $schedule): \Illuminate\Console\Scheduling\Schedule
{
    // 你的调度任务
    return $schedule;
}

2. app/Exceptions/Handler.php

  • register方法需明确返回void类型
  • 若自定义了render方法,需声明返回类型为\Symfony\Component\HttpFoundation\Response

3. 路由文件(routes/web.php、routes/api.php)

  • 确保闭包路由的返回类型符合规范(如返回视图时可声明\Illuminate\View\View)
  • 移除Laravel 10中已废弃的路由语法(如过时的路由参数约束写法)

4. 模型与控制器

  • 模型的fillable/guarded属性需严格定义,避免批量赋值漏洞(Laravel 10对该逻辑的验证更严格)
  • 控制器方法建议明确返回类型,例如:
    public function index(): \Illuminate\View\View
    {
        return view('posts.index', ['posts' => Post::all()]);
    }
    

5. 配置文件

检查config/app.php中的providers数组,移除Laravel 10已废弃的服务提供者(如部分旧官方扩展的提供者)

三、升级后验证

  1. 运行测试套件确保功能正常:
    php artisan test
    
  2. 清除缓存并启动服务验证核心流程:
    php artisan optimize:clear
    php artisan serve
    
  3. 查看storage/logs/laravel.log,排查并修复所有警告、错误信息(尤其是废弃方法调用提示)

内容的提问来源于stack exchange,提问作者JanBoehmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:01:51