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的升级过程就结束了。