16

私が走るとき

$ composer.phar install

インストールされるパッケージはどこから来るのですか?

Packagistが PHP パッケージのデフォルトのリポジトリであり、 に別のパッケージcomposer.jsonがないため、composer がパッケージを探す場所であることを理解しています。

ただし、Composer と Packagist がどのように相互作用するかはよくわかりません。

  • Composer はファイルを直接ダウンロードしますか?packagist.org

  • または、Composer は git/svn/hg リポジトリ リンクを取得しpackagist、リポジトリからファイルを直接ダウンロードしますか?

  • または、他の何か?

4

2 に答える 2

16

ファイルの内容によって異なりcomposer.jsonます。

たとえば、composer.json単に含まれている場合

{
    "require": {
        "phpunit/phpunit": "3.8.*@dev"
    }
}

次に、composer は packagist を検索し、ここで phpunit を見つけます。

https://packagist.org/packages/phpunit/phpunit

ここからphpunitをロードするようにcomposerに指示します:

https://github.com/sebastianbergmann/phpunit.git

代わりにあなたcomposer.jsonが含まれている場合

{
    "repositories": [
        {
            "type": "vcs",
            "url": "http://github.com/sebastianbergmann/phpunit"
        }
    ],
    "require": {
        "phpunit/phpunit": "3.8.*@dev"
    }
}

次に、composer は packagist を参照せず、直接 github に移動してリポジトリをダウンロードします。

Packagist に登録されているパッケージは、通常、パッケージの "正式な" バージョン (フォークではありません) ですが、そうでない例がいくつか見つかったので、期待どおりのパッケージをプルしていることを確認する必要があります。

于 2013-04-25T00:44:22.793 に答える