PHP Composer包来自哪里?
当我跑的时候PHP Composer包来自哪里?,php,composer-php,Php,Composer Php,当我跑的时候 $ composer.phar install 安装的软件包来自哪里 我知道这是PHP软件包的默认存储库,而且在composer.json中缺少不同的软件包,因此composer将在这里查找软件包 然而,我不清楚的是作曲家和包装师是如何互动的 Composer是否直接从packagist.org 或者Composer是否从packagist获得git/svn/hg存储库链接并直接从存储库下载文件 还是别的什么 Packagist.org让用户通过指向Packagist读取web
$ composer.phar install
安装的软件包来自哪里
我知道这是PHP软件包的默认存储库,而且在composer.json
中缺少不同的软件包,因此composer将在这里查找软件包
然而,我不清楚的是作曲家和包装师是如何互动的
- Composer是否直接从
packagist.org
- 或者Composer是否从
获得git/svn/hg存储库链接并直接从存储库下载文件packagist
- 还是别的什么
Composer直接从源代码下载,例如,PackageGist只知道这些源代码,并告诉Composer实例去哪里。它通过从Packagist.org下载一堆包含所有信息的json文件来实现这一点。这比找出所需库的托管位置并将此信息作为存储库条目添加到本地composer.json文件中要容易得多。:) 这取决于
composer.json
文件的内容
例如,如果您的composer.json
仅包含
{
"require": {
"phpunit/phpunit": "3.8.*@dev"
}
}
然后composer搜索PackageGist,并在此处找到phpunit:
它告诉composer从这里加载phpunit:
相反,如果包含您的composer.json
{
"repositories": [
{
"type": "vcs",
"url": "http://github.com/sebastianbergmann/phpunit"
}
],
"require": {
"phpunit/phpunit": "3.8.*@dev"
}
}
然后,composer将不会去看packagist,而是直接去github下载repo
在PackageGist上注册的包通常是该包的“权威”版本(不是fork),但我发现有几个实例不是这样的,因此您应该检查它,以确保您正在提取所需的包。PackageGist持有指向存储库的链接,这些链接就是从中下载的