我跑的时候
$ composer.phar install
Run Code Online (Sandbox Code Playgroud)
安装的软件包来自哪里?
我知道Packagist是PHP包的默认存储库,并且缺少不同的包composer.json,这就是composer将寻找包的地方.
但是,我不清楚的是Composer和Packagist是如何交互的.
Composer是否直接从中下载文件 packagist.org
或者,Composer是否packagist从存储库直接获取git/svn/hg存储库链接并从存储库下载文件?
或者是其他东西?
Ros*_* II 12
这取决于您的composer.json文件的内容.
例如,如果您的composer.json包含简单
{
"require": {
"phpunit/phpunit": "3.8.*@dev"
}
}
Run Code Online (Sandbox Code Playgroud)
然后作曲家搜索packagist,并在这里找到phpunit:
https://packagist.org/packages/phpunit/phpunit
告诉作曲家从这里加载phpunit:
https://github.com/sebastianbergmann/phpunit.git
如果相反你的composer.json包含
{
"repositories": [
{
"type": "vcs",
"url": "http://github.com/sebastianbergmann/phpunit"
}
],
"require": {
"phpunit/phpunit": "3.8.*@dev"
}
}
Run Code Online (Sandbox Code Playgroud)
然后作曲家不会看包装,而是直接去github下载回购.
在Packagist上注册的软件包通常是软件包的"权威"版本(不是分支),但是我发现了几个不是这种情况的实例,所以你应该检查它以确保你正在提取你期望的软件包.