Composer 使用姿势

这里主要说说 composer.jsoncomposer.lock 文件的作用。

composer.json

composer.json 文件包含了项目的依赖和其它的一些元数据,使用 JSON format 编写。

当初次调用 composer install 时,Composer 会根据 composer.json 文件,将定义好的依赖获取到本地项目中。

与此同时,install 命令将创建一个 composer.lock 文件到项目的根目录下。

composer.json 的写法这里不多赘述,具体可以参考 composer.json 架构。

composer.lock

安装依赖后,Composer 会把安装时确切的版本号列表写入 composer.lock 文件中。

composer.lock 的作用是让所有开发者的开发环境保持统一,因此,我们需要提交应用程序的 composer.lock 到版本库中。

若对 composer.json 文件进行了修改,则使用 composer update 来更新依赖与 composer.lock 文件。

升级指南

前置工作

根据老版本和具体要升级到的新版本,看一下官方的 升级指南 和新版本文档,了解新版本的特性和老版本变动,对不符合新版本要求的代码进行修改。

修改 composer.json

例如我要将 Lumen 升级到 5.8 版本:

"laravel/lumen-framework": "5.8.*"

修改后执行 composer update,Composer 就会开始帮我们更新依赖。

Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 53 updates, 0 removals- Updating symfony/polyfill-php72 (v1.10.0 => v1.11.0): Loading from cache- Updating symfony/polyfill-mbstring (v1.10.0 => v1.11.0): Loading from cache- Updating symfony/var-dumper (v4.1.7 => v4.2.8): Downloading (100%)- Updating symfony/http-foundation (v4.1.7 => v4.2.8): Downloading (100%)- Updating symfony/polyfill-ctype (v1.10.0 => v1.11.0): Loading from cache......

更新完成后会发现 composer.lock 文件变更了。

composer.lock 提交到版本库,保证所有开发环境的统一。

全面测试

这个不必多说了,虽然在前置工作中我们已经根据新版本的特性修改了一些代码,但无法保证程序中没有遗漏的地方。把所有的单测都跑一跑吧~

总结

  • composer.lock 不存在时,composer install 将根据 composer.json 文件安装依赖,并创建 composer.lock 文件
  • composer.lock 文件存在时,composer install 将直接根据 composer.lock 文件拉取依赖
  • 使用 composer update 更新依赖与 composer.lock 文件
  • 升级 = 文档研读 + 代码修改 + 全面测试

参考资料

  • Composer 中文网

composer升级_Composer 使用姿势与 Lumen 升级指南相关推荐

  1. oracle 云服务器cpu升级,Oracle 10g RAC 升级(CPU Update)之--升级CRS

    Oracle 10g RAC 升级(CPU Update)之--升级CRS 发布时间:2020-07-16 09:13:19 来源:51CTO 阅读:593 作者:客居天涯 Oracle 10g RA ...

  2. zookeeper平滑升级_zookeeper从3.4.8升级到3.4.14

    升级背景说明: 最近在做系统安全扫描时,扫出来zookeeper存在安全漏洞 Apache Zookeeper 缓冲区溢出漏洞(CVE-2016-5017) 官方给出的升级建议: 地址:https:/ ...

  3. 服务器升级中不能修改信息,服务器升级页面

    服务器升级页面 内容精选 换一换 请使用Mind Studio的安装用户进行升级操作,在升级前请先登录到后台服务器,切换到root用户在/usr/bin目录下执行./add_sudo.sh usern ...

  4. 手环升级鸿蒙设备名单,鸿蒙2.0升级名单已确认-可首批升级的42款机型推荐

    原标题:鸿蒙2.0升级名单已确认-可首批升级的42款机型推荐 鸿蒙系统2.0已确认有42款机型可以首批升级,比安卓快60%,那么鸿蒙系统2.0已确认的升级机型都有哪些?不少小伙伴们还不是很了解,小编为 ...

  5. Wi-Fi 6值得升级吗?从Wi-Fi 5升级到Wi-Fi 6需要什么?

    Wi-Fi 6当下最新的无线标准,在升级到 Wi-Fi 6 之前需要考虑一些事项,例如,Wi-Fi 6 值得升级吗?从 Wi-Fi 5 升级到 Wi-Fi 6 需要什么? 什么是 Wi-Fi 6? W ...

  6. Oracle 10g RAC 升级(CPU Update)之--升级CRS

    Oracle 10g RAC 升级(CPU Update)之--升级CRS 系统环境: 操作系统:RedHat EL5 Cluster: Oracle CRS 10.2.0.1.0 Oracle:   ...

  7. 怎样升级android10版本,手机怎么升级win10系统 win10手机版升级教程

    win10正式版即将发布,手机版win10系统也陆续放出支持机型,手机怎么升级win10系统?下面我们就一起来看看win10手机版升级教程. 手机怎么升级win10系统 win10手机版升级教程 首先 ...

  8. vSphere5.1升级5.5(二)——升级Esxi主机及vmware tools

    之前介绍了从vCenter5.1升级到5.5,vCenter升级完后,我们还需要对Esxi主机及虚拟机的vmware tools进行升级,升级可以采用交互式升级或使用updata management ...

  9. sharepoint2007就地升级2010系列(三)升级系统

    OK,上两篇我们完成sharepoint2007的预览,以及升级前的补丁准备.今天我们来正式进行升级windows server系统以及SQL数据库 升级之前首先确定 search服务停止而且被禁用, ...

最新文章

  1. python pprint_【Python】输入和输出
  2. Android高级开发专题晋升班
  3. 鸿蒙 电视 安卓,华为鸿蒙2.0来了!打通手机、电视、PC全平台,Mate 40 整装齐发...
  4. 【算法】希尔排序 推导方法
  5. java如何快速抛出异常,异常 - 如何抛出异常 - 《Java 编程要点(Essential Java)》 - 书栈网 · BookStack...
  6. Maven+SpringMVC+Dubbo 简单的入门demo配置(另一篇)
  7. mysql五:索引原理与慢查询优化
  8. 百分点感知智能实验室:语音识别技术发展阶段探究
  9. 再生核希尔伯特空间和核方法
  10. OA 系统中的流程管理
  11. 计算机音乐演奏jojo,【FF14】诗人演奏用 il vento d'oro(动画《JOJO的奇妙冒险 黄金之风》插曲)...
  12. 用Qt实现QQ好友列表界面伸缩功能(完全一模一样)(伸展和收缩、抽屉效果、类似树形控件)(鼠标划过QSS效果)
  13. ERP产品销售发货--发货管理(四十一)
  14. Python迭代器和生成器详解(包括yield详解)
  15. 开启邮箱的SMTP服务获取授权码(QQ邮箱、163邮箱)
  16. linux网桥--简介
  17. 讲讲多拨的额外骚操作(多拨附加教程)
  18. 大白兔启动盘做好后重做系统
  19. poj 3904 求四元互质集合
  20. photoshop2021正式版上线,photoshop 2021 mac

热门文章

  1. Guns 下载、导入、运行_入门试炼01
  2. 修改Gradle本地仓库的位置 方法
  3. Leetcode 206.反转链表(双指针迭代法和递归操作)
  4. mysql 全文索引 权重_MySQL中的全文索引
  5. qt实现QLabel上显示的文字有描边
  6. java runtime类 heap_Java 进阶(一) JVM运行时内存模型
  7. dede列表页if判断输出html,首页、列表页调用文章body内容的两种方法
  8. mysql导数据出指定数量_mysql导出指定数据或部份数据的方法
  9. mysql vim 命令_Vim基本命令必知必会
  10. html5 电流效果,在HTML5 Canvas 2D上绘制云雾中的电流动画特效