項目中的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)中指定的包

修復完成

 

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