在更新和安装依赖库的时候报错:Your requirements could not be resolved to an installable set of packages.。下面还有一大段关于每个依赖包获取不到资源的错误提示。

网上有教程说,首先检查 版本格式 是否写正确。另一个就是 php 版本有问题。前者因为项目之前是已上线的项目,版本格式经得起推敲的。后者 php 版本要求 "php": ">=5.5.9",本地 7.0 也是满足的。

猜想会不会是新安装的 composer 使用的默认的依赖库(packagist.org),而拿不到相应的依赖库代码。

原始 composer.json 内定义的依赖库源地址:

    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }

这与 composer 中国镜像 的推荐使用方法是一致的,照理说是不应该存在问题的。不放心又添加了阿里云的镜像地址:

    "repositories": [
        {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        },
        {
            "type": "composer",
            "url": "https://mirrors.aliyun.com/composer"
        }
    ]

然后再执行 composer update,竟然可以了。

回过头来尝试去掉阿里云的镜像地址:

    "repositories": [
        {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    ]

竟然还是可以的,反复测试源地址的定义方法对 composer 执行结果的影响,确定 repositories 定义为数组时依赖包解析正确,而按照 composer 中国镜像上定义单个对象源地址时就会报错。