composer -- Загрузка зависимостей (пакетов) с github. Пример composer.json
Primary tabs
Что должно быть в вашем проекте, который использует пакет:
В вашем проекте должен лежать 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 может вообще и не быть (например).
- Log in to post comments
- 4968 reads