项目中的tp框架不在composer中,导致无法通过composer update升级,需要修复为支持composer升级

项目环境:

   操作系统: mac 10.11.5  (mac mini 2014末)

    php版本:php7.2.1

    tp版本号 : thinkphp v5.1.37 LTS

客户需求:项目中的tp框架不在composer中,导致无法通过composer update升级,需要修复为支持composer升级

 

首先要了解的是composer.json和composer.lock两个文件

安装 install

install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。

php composer.phar install

如果当前目录下存在 composer.lock 文件,它会从此文件读取依赖版本,而不是根据 composer.json 文件去获取依赖。这确保了该库的每个使用者都能得到相同的依赖版本。

如果没有 composer.lock 文件,composer 将在处理完依赖关系后创建它。

composer.lock中的内容如下:

先composer安装一个新的tp5.1的项目,这里你指定了5.1.37也是安装5.1最新版本的(当时5.1.39最新)

composer create-project topthink/think=5.1.* tptest

再把你要修复的项目(简称A项目)迁移到项目来(这种办法虽然有点无语),可是新项目tptest(简称B项目)的vendor下没有我要的指定版本的库怎么办法?

    把A项目中composer.lock下的packages字段下的包信息考到B项目下的packages字段下,然后删除vendor下的出了composer和topthink文件夹之外的文件夹(可能你迁移项目时也把之前的类库靠过来啦),B项目的根目录下执行composer install进行安装composer.lock中所指定的库即可。

composer show -o   检查列出本地已安装的包的更新包

composer install       安装composer.lock(无composer.lock则composer.json)中指定的包

修复完成

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章