问题描述:
拿到的一个项目没有 composer.json,不过 /vendor 目录下是完整存在的。对此我们进行恢复。提供两个方式,都需要通过 /vendor/composer/installed.json 进行恢复。如果不存在则只能手动将所存在的项目逐个取出及对应版本号收集整理。
原因分析:
原理
其一,将上述文件内容所有的包名称及版本号提取出来标准规范写到 composer.json 即可。
其二,创建 composer.json ,运行 composer show --installed ,程序会将其列表出来,也需要收集提取。
解决方案:
1.运行 composer show --installed > 文件名 写到文件里面
2.使用sublime Text 匹配正则替换
匹配正则:
([A-z0-9/-.]+)\s+([A-z0-9.-]+)[\S\s]+?\n
替换正则:
“$1”:"$2",\n
3.替换项目composer.json文件
我们将 composer 返回的内容复制出来,使用正则提取出来并将其替换,最后将其中的 #### 替换为相应的换行符 \r\n ,格式化后将其放置到 composer.json 文件里的 require 或者 require-dev 配置段。
4.更新composer
composer update
…
Writing lock file
Generating autoload files