composer -- Загрузка зависимостей (пакетов) с github. Пример composer.json

Что должно быть в вашем проекте, который использует пакет:

В вашем проекте должен лежать composer.json, который как минимум указывает зависимости вашего пакета (имя и иные сведения не нужны -- если сам проект не является пакетом):

{
    "require": {
        "it-for-free/php-examples": "dev-master"
    },
    "repositories": [
        {
           "type": "vcs",
           "url": "ссылкаНаРепозиторий"
        }
    ]
}

где вместо ссылки, опять же в кавычках можно указать адрес репозитория на гитхабе:
https://github.com/it-for-free/PhpExamples
(о собственно composer.json) этого пакета мы говорили здесь.

Далее разберём что указано в последнем манифесте:

  • "require": {

    -- в этой секии через запятую перечисляются пакеты, от которых зависит текущий проект

  • "repositories" -- тут перечисляются адреса репозиториев, в которых композер будет искать пакеты перечисленные в секции require.
    Адреса репозиториев нужно перечислять не всегда. Но если загрузка идёт с гитхаб или иных не сильно стандартных (для загрузки пакетов) систем, то это приходится делать.
  • "type": "vcs"

    -- показывает что тип этого пакета "репозиторий"/"контороль версий" (vcs = version control system).

  • "dev-master"

    -- в кавычках для репозитория типа vcs можно указывать ветку в системе контроля версий (например, git-ветку), обычно же тут указывается версия пакета (сейчас вопрос работы с разными версиями мы не рассматриваем).

    Слово dev-master может оказаться необходимым, чтобы скачать веку master.

Зависимость нескольких пакетов

Если ваш проект зависит от нескольких проектов, то обший вид его composer.json будет каким-то таким:

{
    "require": {
        "разработчкик1/пакет1": "ветка",
		"разработчкик1/пакет2": "ветка",
	    "разработчкик2/пакет23": "версия"
    },
    "repositories": [
        {
           "type": "vcs",
           "url": "ссылкаНаРепозиторий1"
		},
		{
           "type": "vcs",
           "url": "ссылкаНаРепозиторий2"
		},
    ]
}

-- если для трёх пакетов указано меньшее число репозиториев, то это значит, что:

  • либо несколько пакетов находятся по одному адресу.
  • либо эти пакеты, которые берутся не из репозитория -- а потому адрес не нужен (т.е. композер использует какие-то стандартные адреса поиска).

-- т.е. секции repositories может вообще и не быть (например).

Key Words for FKN + antitotal forum (CS VSU):