Composer - это пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении.

Composer разработали и продолжают поддерживать два программиста Nils Adermann и Jordi Boggiano. Они начали разрабатывать Composer в апреле 2011, а первый релиз состоялся 1 марта 2012. Идея создания пакетных менеджеров уровня приложений не нова и его авторы вдохновлялись уже существовавшим на тот момент времени npm для Node.js.

Composer работает через интерфейс командной строки и устанавливает зависимости (например, библиотеки) для приложения. Он также позволяет пользователям устанавливать PHP-приложения, которые доступны на packagist.org, который является его основным репозиторием, где содержатся все доступные пакеты.

Кратко, как это работает:

  1. У вас есть проект, который зависит от нескольких библиотек.
  2. Некоторые из этих библиотек зависят от других библиотек.
  3. Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
  4. Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.

Команды:

composer require vendor/package

Добавляет требуемый пакет в файл composer.json и устанавливает его в ваш проект. Команда require изменяет composer.json, находящийся в текущей папке. Если пакету требуются зависимости, то они будут установлены или обновлены. А также будет обновлён composer.lock.

composer install

Если файла composer.lock нет, резолвит зависимости исходя из composer.json и создаёт его. Далее, анализирует файл composer.lock, скачивает и устанавливает указанные в нём версии пакетов. Опция --no-scripts полезна для обхода запуска скриптов, указанных в pre- и post- настройках.

composer update

Обновляет ваши зависимости до последних версий и обновляет composer.lock. Команда update резолвит зависимости чтобы получить самые последние версии зависящих друг от друга пакетов.

composer update --lock

Иногда, вы можете получить такое предупреждение:

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.

Это может произойти после того, как вы вручную редактировали composer.json (добавляли или изменяли description, authors, extra и т. д.). Даже если ваши изменения незначимы для Composer, он обнаруживает, что md5sum файла изменена, и предупреждает, что эти изменения не учтены в файле composer.lock. Поэтому, чтобы подавить это предупреждение, вы можете просто запустить команду update --lock для обновления lock-файла без обновления самих пакетов.

composer about

Краткая информация о Composer.

composer archive vendor/package	

Создать архив для указанного пакета. Команда также может быть использована для архивирования всего проекта без исключенных/игнорируемых файлов.

composer browse

Псевдоним для home, открывает URL пакета или его домашнюю страницу в браузере.

composer clear-cache

Псевдоним команды clearcache, очищает внутренний кэш пакетов Composer-а.

composer config --list

Позволяет редактировать некоторые основные параметры Composer-а либо в локальном файле composer.json, либо в глобальном файле config.json.

composer create-project vendor/package dir/

Создать новый проект из указанного пакета в указанном каталоге.

composer depends vendor/package

Сообщает вам какие другие пакеты зависят от конкретного (указанного) пакета. Вы можете указать какие типы связей (require, require-dev) должны быть включены в листинг. По умолчанию выводятся оба.

composer diagnose

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

composer global

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

composer help [command]

Отображает справки для всех других команд: composer help install.

composer init

Создает базовый вариант файла composer.json в текущем каталоге.

composer licenses

Показать информацию о лицензиях зависимостей.

composer list

Выводит список допустимых команд.

composer remove

Удаляет пакет из секций require или require-dev: remove vendor/package vendor/package2.

composer run-script

Запустить вручную скрипты, объявленные в composer.json. Просто передайте название скрипта и при необходимости --no-dev, чтобы отключить режим dev.

composer search ключевые слова

Поиск пакетов.

composer self-update

Обновление самого composer.phar до последней версии. Запуск команды self-update может решить некоторые проблемы и сэкономить ваше время. Также вы можете использовать псевдоним selfupdate.

composer validate

Проверяет файл composer.json. Вы всегда должны запускать команду validate перед тем, как коммитить ваш composer.json и перед установкой релизного тега. Эта команда проверит его на ошибки.