Larvel从Larvel8或Larvel9升级到Larvel10

Laravel框架
1018
1
1
2023-06-18
标签   Laravel环境

Laravel10发布已经有一段时间了,也到该需要升级下版本的时候了

1. 升级PHP版本

Laravel10需要php8的支持,我们来看下官网的版本要求:

Version

PHP (*)

Release

Bug Fixes Until

Security Fixes Until

8

7.3 - 8.1

September 8th, 2020

July 26th, 2022

January 24th, 2023

9

8.0 - 8.2

February 8th, 2022

August 8th, 2023

February 6th, 2024

10

8.1 - 8.2

February 14th, 2023

August 6th, 2024

February 4th, 2025

11

8.2

Q1 2024

August 5th, 2025

February 3rd, 2026

php的升级过程自行搜索下,下次我写一篇升级PHP版本的文章。

2.升级Laravel版本

修改composer.json中laravel/framework到10.0版本

"laravel/framework": "^10.0",

然后执行更新操作:

composer update -vvv  

结果发现各种包的版本不兼容,如下图:

3. 移除不兼容的包

第一个包,fruitcake/laravel-cors,这个包在新版本里面已经不必要存在了,可以看下官网https://github.com/fruitcake/laravel-cors,可以看到如下信息:

所以果断移除这个包,并相应的修改对应文件:

composer remove fruitcake/laravel-cors

第2个包,facade/ignition,可以从官网看到https://github.com/facade/ignition,这个包已经被另外一个包替换了

所以果断移除这个包:

composer remove facade/ignition

第3个包,nunomaduro/collision,版本也不兼容,既然报错,也先移除

composer remove nunomaduro/collision

然后执行2,继续升级Laravel

composer update -vvv  

发现成功了,升级过程过长,我截2个图如下:

然后查看Laravel的版本

composer info laravel/framework | grep versions

可以看到如下结果,如图:

4. 安装回删除的包

composer require spatie/laravel-ignition --dev

可以看到如下信息,如图:

继续安装包nunomaduro/collision

composer require nunomaduro/collision --dev

结果发现报错了,如下图:

可以看到被phpunit的版本给牵制了,所以先升级phpunit的版本,修改composer.json, "phpunit/phpunit""^10.0"然后执行

composer update -W phpunit/phpunit

这里需要加上-W,否则会报如下错:

之后phpunit升级成功,如下图:

然后再安装nunomaduro/collision

composer require nunomaduro/collision --dev

发现就成功,可以看到如下信息:

到这Laravel10的升级过程就结束了。