composer Что такое пакет, зависимость

Термины

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

    Всякий пакет в конечно итоге это какие-то файлы, которые можно загрузить в свое web-приложение с помощью композера. На практике часто это php-классы, находящиеся в каком-либо пространстве имён.

  • Зависимость [какого-то пакета] -- это пакет, без которого данный пакет работать не может.

Где хранятся сведения

Сведения о пакетах записывают в файл composer.json -- такой файл быть:

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

Репозиторий (или что-то ещё) и пакет -- какая разница

Композер может "признать" в каком либо наборе файлов и диреторий пакет (а репозиторий это часто именно набор файлов) -- если в корне этой файловой иерархии лежит composer.json, как минимум содержащий имя этого пакета.

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

it-for-free/file-uploader

о чем и сказано в его манифесте.

Композеру не очень важен источник загрузки -- гитхаб или какой-то файловый сервер или собственный сайт композера -- важно что написано в манифесте (composer.json).

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