Composer 使用姿势与 Lumen 升级指南

Composer 使用姿势

这里主要说说 composer.json 和 composer.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 文件
  • 升级 = 文档研读 + 代码修改 + 全面测试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值