composer升级_Composer 使用姿势与 Lumen 升级指南

90f277856c1fc45f94eb2775396b9981.png

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 中文网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器间传文件$d,基于OpenSSH+WinSCP完成Windows服务器之间的文件传输

背景经常会遇到在不同服务器之间传输文件,Linux和Linux之间用命令rsync, windows和linux之间普遍是有图形化界面的ftp软件,老黄平时用的比较多的是FileZilla。Windows和Windows之间的话,90%都是在一台机器复制,到另一台…

dbgrideh 为什么只一行_Mysql性能优化:为什么count(*)这么慢?

导读在开发中一定会用到统计一张表的行数,比如一个交易系统,老板会让你每天生成一个报表,这些统计信息少不了sql中的count函数。但是随着记录越来越多,查询的速度会越来越慢,为什么会这样呢?Mysql内部到底是…

jmeter 高并发测试报告_JMeter分布式测试

一、为什么要使用分布式测试按照一般的压力机配置,jmeter的GUI模式下(Windows),最多支持300左右的模拟请求线程,再大的话,容易造成卡顿、无响应等情况,这是限于jmeter其本身的机制和硬件配置。有时候为了尽量模拟业务场…

登陆拦截拦截ajax,过滤器实现登录拦截需要注意的问题(AJAX请求的处理)

1.问题描述:最近自己在写demo时遇到一个问题,在ajax请求时用Filter做登录拦截,结果页面不跳转(Ajax是不能做转发和重定向的)、、、、最终的最终在同事zt的提示下,恍然大悟,虽然很基本的问题,但也纠结了好久…

半圆阴影_六年级数学:怎么求阴影部分面积?正方形与半圆,割补法常考题

欢迎您来到方老师数学课堂,请点击上方蓝色字体,添加关注。所有的视频内容,全部免费,请大家放心关注,放心订阅。六年级数学:怎么求阴影部分面积?正方形与半圆,割补法常考题。大家先在…

c语言判断整数_用c++编写闰年的判断基础程序

其实c语言与c语言有太多共同的东西,学习过c语言再学习c语言就显得轻而易举。当然学过了c再去学习c语言也是有一些帮助的(但是个人不提倡先学习c在学c语言)。由于现在经常看见有关闰年的程序,风式各样,眼花缭乱,些许凌乱&#xff0…

cat日志 搜索_大日志,看我如何对付你

在服务器接口测试中,我们经常会和各种日志打交道。一旦测试时服务端出现了问题,而单凭服务端的日志又不能发现问题原因的时候,往往开发要向我们测试人员询问客户端这边的情况,希望看看我们能不能提供一些有用信息,如错…

python编译成dll文件_用vc生成可被python调用的dll文件

前提已经有.c 和.i文件 用swid编译了.i文件生成了wrap.c文件和.py文件 vc创建dll工程 将.h加入到头文件中.c文件和wrap.c文件添加到源文件中 将.i文件添加到工程目录下 Tools->Options->Directories中修改include 和lib 添加python里的include 和libs 把\libs\python27.l…

加载gif动图_GIF生成神器——ScreenToGif

每次需要做一个动图展示时,总是感觉很头疼。截图吧,需要的图片太多;录视频吧,文件太大;做动图吧,太麻烦。今天推荐的这个软件或许能够解决大家这个困惑,今天推荐的是动图生成神器——ScreenToGi…

vue底部选择器_vue实现动态显示与隐藏底部导航的方法分析

vue实现动态显示与隐藏底部导航的方法分析本文实例讲述了vue实现动态显示与隐藏底部导航的方法。分享给大家供大家参考,具体如下:在日常项目中,总有几个页面是要用到底部导航的,总有那么些个页面,是不需要底部导航的&a…

java 修改最大nio连接数_关于java流的几个概念:IO、BIO、NIO、AIO,有几个人全知道?...

关于同步、阻塞的知识我之前的文章有介绍,所以关于流用到这些概念与之前多线程用的概念一样。下面具体来看看java中的几种流IO/BIOBIO就是指IO,即传统的Blocking IO,即同步并阻塞的IO。这也是jdk1.4之前的唯一选择,依赖于ServerSocket实现&am…

python神秘的魔法函数_python魔法函数

一、参考二、构造和初始化2.1 __new__在对象实例化过程中最先调用的方法是__new__, 该方法接收参数为类,然后将其他参数,传递给__init__, 该魔法函数比较少见,可以使用其,创建单例类; __new__方法是一个类方法,需要携带…

python扫雷 广度优先_广度优先搜索(BFS)解题总结

定义 广度优先搜索算法(Breadth-First-Search),是一种图形搜索算法。 简单的说,BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。 如果所有节点均被访问,则算法中止。 BFS同样属于盲目搜索。 一般用队…

python默认参数陷阱_python默认参数陷阱

0|1陷阱?学过函数的人一定听说过函数的默认参数,关于函数的默认参数,请看以下的例子:def extendList(val, lst[]):lst.append(val)return lstlist1 extendList(10)list2 extendList(123, [])print(list1 %s % list1)print(list…

python裁剪图片并保存_python – 如何从图像中剪切轮廓并将其保存到新文件中

大家好,这是我的第一个问题所以请保持温和.我有一个计算机视觉领域的项目,我是新的,我会很感激一些帮助.我有一个pcb的图像,我的(首先)任务是从背景中切断电路板并将其保存到新文件.如果结果只是没有灰色背景的普通pcb,那就没问题了. 我到目前为止尝试的是,首先使用阈值将图像转…

opencv如何把一个矩阵不同列分离开_学习OPEN_CV

OpenCv中文论坛精华地址http://www.opencv.org.cn/index.php/User:Ollydbg23http://sivp.sourceforge.net/(sivp)一、基础操作1. 数据类型 数据结构了解图像相关:cvArr cvMat IplImage数据数组的维数, 与数据的通道数 见P46 (76)2. 常见的矩阵操作熟悉3…

python文件合并_用Python 将两个文件的内容合并成一个新的文件.

一个文件的内容是:IntroductiontoProgramming,NetworkingFundamentals,InternetworkingTechnologies,PlatformTechnologies,InformationTechnologyforUsers,ComputerForensics,Enterpr... 一个文件的内容是: Introduction to Programming, Networking Fundamentals, Internetwo…

flash代码_Flash如何对制作文件进行优化

对FLASH进行优化分为两方面,一方面是代码上的优化,主要是通过优化提高FLASH性能,降低CPU占用和内存使用。另一方面是资源的优化,这方面的优化是为了减小编译后的文件大小以及制作文件的大小,因为如果不进行相应的优化&…

潜流式湿地计算_人工湿地计算书

人工湿地计算书1、尾水提升泵房集水池基本参数集水池设计规模为30000m3/d,约折合1250m3/h,按水力停留时间HRT为0.25 h计,集水井有效容积应为312.5 m3,考虑到与污水厂原有排污管道相契合,集水设计尺寸为:LBH…

deepin系统转为windows_windows系统下安装深度系统deepin

前期准备DiskGenius(用来扩展分区)deepin-20-amd64.iso(深度系统镜像文件)相关文件下载首先下载安装时要用的工具,分别为:DiskGenius , UltraISODiskGenius是一款磁盘工具,创建系统分区。UltraISO是用来打开系统光盘镜像文件工具。Win8/8.1/10无需下载Ul…