1

Laravel框架如何进行版本升级

 2 years ago
source link: http://www.veiking.cn/blog/1071-page.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Laravel框架如何进行版本升级_程序员甲_Veiking百草园-知识点滴,日常分享


最近需要填一些漏洞,于是想着索性先把laravel框架升级至最新,这样可以避免很多隐患。除去各版本之间问题的差异性,想着基于composer的laravel版本升级,比较严肃,我们就稍微深入一点点,看看问题在哪里。最后也已经基本明确了:升级laravel的问题核心在composer.json文件;此外,像这种大的升级要注意提前阅读升级指南说明文档,评估升级的影响

最近需要填一些漏洞,于是想着干脆一了百了,索性先把laravel框架升级至最新,这样可以避免很多隐患。

由于咱们一开始就是使用composer协助管理模块依赖,尝试了几个熟悉的composer指令之后,发现不能解决问题,于是网上搜升级教程,然后发现百度结果干辣,令人疑惑
很多结果是一本正经的照搬laravel升级指南,这个升级指南说明文档是laravel项目方发布的,侧重点讲的是新旧版本差异,新版本升级后需改动或注意事项等等。当然这个普遍需要也非常重要,但不是本次升级操作重点;
然后就是很多各种一句话说明,比如很多composer指令,不少前辈给出了如下操作建议:
如执行:composer require laravel/framework
或执行:composer update laravel/laravel
或:composer install laravel
……
当然,类似的建议题解很多,显然都解决不了实质性问题,并不能实现laravel版本的升级,这里也非常疑惑各位答主大神是怎么通过这些指令搞定的,哈哈哈。

看了很多操作建议之后,除去各版本之间问题的差异性,以及网上解决方案的随意性,想着基于composer的laravel版本升级,比较严肃的事情了,不应该如此凌乱不堪,我们就稍微深入一点点,看看问题在哪里。
既然我们使用的是composer来管理依赖,问题还是从composer来解决。

想解绝laravel升级的问题,这里就不得不先搞明白composer相关的两个东西:composer.json文件和composer.lock文件。
composer.json文件是我们安装项目依赖的基础元数据,直白点理解,就是我们刚开始使用这个框架,或者必须依赖的这些个模块,都是以这个文件的描述为基础的;
composer.lock文件则是在以composer.json描述安装完成后,锁定这些依赖对应的特定版本,直白点理解,这个就是用来避免版本混乱和冲突的。
也就是说,我们在首次安装完laravel框架之后,之后的所有 require或update 操作,都是以composer.json文件描述为基础,以composer.lock文件约束为版本基础,进行安装或升级的
这就不难理解,为什么单纯的 require或update 的操作,即使键盘敲碎,也并不能实现laravel框架升级。
理解到这里,问题也已经基本明确了:升级laravel的问题核心在composer.json文件

知道了基本原理,操作实施起来就比较简单了
我们打开composer.json文件,找到“require”处的“laravel/framework”,直接修改版本号到”^8.37”,
然后执行composer update进行更新
片刻之后,执行完毕
我们接着执行php artisan --version查看laravel版本
如无意外,我们即可以看到laravel版本已经成功升级至8.37
此外,升级之后还需参考对应版本的laravel升级指南,在程序上做出相应的调整和修改,避免程序报错、不能正常运行。

类似于laravel框架的整体升级,可能会涉及一些其他模块的同步升级,需要在composer.json文件处做相应修改,避免各模块之间版本冲突引发问题;
像这种大的升级要注意提前阅读升级指南说明文档,评估升级的影响,避免升级之后程序代码的仓促修改,引起BUG等问题;
道理是早升级早超生,谨此个见。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK