PHP如何反向读取一行数据,php – 如何读取或反向工程composer.lock文件?

我继承了一个用

PHP 5.3.x,Symfony2和Composer构建的项目,用于依赖管理.

composer.json文件有很多这样的行:“vendorname / library”:“dev-master”表示正在使用的库的版本.它最后一次编辑于2012年8月,并且由于composer.lock文件存在且项目在我们主机的服务器上运行,因此显然有效.

谢天谢地,对composer.lock进行了一次小调整,我让作曲家安装工作,但我现在要做的是修复运行作曲家更新时遇到的一些失败.网上有很多关于作曲家依赖地狱的帖子 – 而且我在河上的一条漏水船上朝着那里拔头发.

简而言之,几年前当composer.lock被创建时,该项目与当时版本的几十个包含供应商库的“dev”一起工作,但现在我正在努力清理这些混乱,我想将正确的版本放入composer.json并尝试从已知状态更新内容.

如何通过composer install发现实际安装的版本?或者composer.lock文件中的键/值告诉你这个?

我在composer.lock文件中有很多github提交哈希,但是给定一个任意提交哈希并不清楚最接近的标记版本是用composer.json替换相应的行.

这是composer.json的一个示例行:

"doctrine/doctrine-bundle" : "dev-master",

这是该模块的composer.lock中的相应节点:

{

"name": "doctrine/doctrine-bundle",

"version": "dev-master",

"target-dir": "Doctrine/Bundle/DoctrineBundle",

"source": {

"type": "git",

"url": "http://github.com/doctrine/DoctrineBundle.git",

"reference": "d3c930599723c8343472a5791b0f5909a4111a73"

},

"dist": {

"type": "zip",

"url": "https://github.com/doctrine/DoctrineBundle/zipball/d3c930599723c8343472a5791b0f5909a4111a73",

"reference": "d3c930599723c8343472a5791b0f5909a4111a73",

"shasum": ""

},

"require": {

"doctrine/dbal": ">=2.2,<2.4-dev",

"php": ">=5.3.2",

"symfony/doctrine-bridge": "2.1.*",

"symfony/framework-bundle": "2.1.*"

},

"require-dev": {

"doctrine/orm": ">=2.2,<2.4-dev",

"symfony/validator": "2.1.*",

"symfony/yaml": "2.1.*"

},

"suggest": {

"doctrine/orm": "The Doctrine ORM integration is optional in the bundle."

},

"type": "symfony-bundle",

"extra": {

"branch-alias": {

"dev-master": "1.0.x-dev"

}

},

"autoload": {

"psr-0": {

"Doctrine\\Bundle\\DoctrineBundle": ""

}

},

"license": [

"MIT"

],

"authors": [

{

"name": "Fabien Potencier",

"email": "fabien@symfony.com"

},

{

"name": "Benjamin Eberlei",

"email": "kontakt@beberlei.de"

},

{

"name": "Symfony Community",

"homepage": "http://symfony.com/contributors"

}

],

"description": "Symfony DoctrineBundle",

"homepage": "http://www.doctrine-project.org",

"keywords": [

"DBAL",

"Database",

"ORM",

"Persistence"

],

"support": {

"source": "https://github.com/doctrine/DoctrineBundle/tree/master",

"issues": "https://github.com/doctrine/DoctrineBundle/issues"

},

"time": "2012-09-10 15:12:44"

}

我猜测作曲家会安装来自composer.lock的dist-> url或source-> url,但我有几十个模块可以通过,并想知道如何为每个引用的库找到最接近的(按日期)标记来创建一个理智的composer.json文件,可以继续更新我们的代码.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值