Composer Flashcards

1
Q

Что такое composer? Зачем он нужен?

A

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Каким образом можно скачать или обновить используемые пакеты?

A

install — создает или обновляет composre.lock на основе composer.json и устанавливает указанные там пакеты
update – обновляет пакеты, зависимости дл последних версий и обновляет composer.lock
require somepackage/somepackage:someversion — добавление нового пакета в composer.json и установка его в проект

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Зачем нужны composer.json и composer.lock?

A

composer. json - содержит набор информации о том, какие пакеты и каких версий надо установить
composer. lock - генерируется автоматически, сохраняет текущий список установленных зависимостей и их версии

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Чем команда “composer global” отличается от просто “composer”?

A

Команда global позволяет другие команды такие, как install, require или update запускать так, как если бы вы запускали их из каталога COMPOSER_HOME.

Это может использоваться для того, чтобы установить командные утилиты глобально.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Каким образом composer подключает файлы?

A

При установке пакетов composer проходится по их правилам в composer.json и генерирует файл apload.php в vendor.
Когда зависимость указывается в composer.json, то composer берет имя пакета и ищет его во всех репозиториях, которые указаны в repositories. Если дополнительные репозитории не указаны или пакет в них найти не удается, тогда поиск идет по packagist. Когда пакет найден, тригаются функции управления версиями, чтобы найти лучшую для указанного пакета.
Если обратное не указано, то при поиске учитываются только стабильные версии.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
Структура composer.json, что это за ключи и как используются (в т.ч. в Drupal
8)?
○ require
○ require-dev
○ type
○ minimum-stability
○ extra
○ repositories
A

○ require - список зависимостей для работы проекта
○ require-dev - список зависимостей для разработки проекта
○ type - тип репозитория, указывающийся как параметр репозитория в соответствующем разделе
○ minimum-stability - определяет минимальную стабильность пакета
○ extra - дополнительные параметры, например, патчи
○ repositories - список репозиториев, по которым будут искаться пакеты и их зависимости

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Каким образом можно указать версию пакета?
○ Что означает версия “1.2.3”?
○ Что означает запись “1.2.*|1.2.3”?
○ В чём отличие между записями “1.2.3”, “~1.2.3” и “^1.2.3”?

A

1.2.3 - точная версия
1.2.*|1.2.3 - версия 1.2.х, но не больше 1.2.3
~1.2.3 - от 1.2.3 до 1.3
^1.2.3 - от 1.2.3 до 2.0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое semver?

A
Семантическое версионирование.
MAJOR.MINOR.PATCH
MAJOR - несовместимые изменения
MINOR - добавление функциональности с обратной совместимостью
PATCH - обратно совместимые багфиксы
How well did you know this?
1
Not at all
2
3
4
5
Perfectly