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 dump-autoload --optimize Если вам нужно обновить загрузчик, т. к. появились новые классы, вы можете выполнить команду dump-autoload чтобы избежать установки или обновления пакетов.

Используйте ключ --optimize для преобразования PSR-0 в автозагрузку как для classmap, чтобы автозагрузчик был наиболее быстрым. Это настоятельно рекомендуется для production (вы можете получить 20% прирост), но может занять немного времени для запуска, так что это на данный момент не сделано по умолчанию.

Также вы можете использовать dumpautoload псевдоним.
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_HOME/vendor/bin в переменную $PATH вашего окружения, то запуск утилит станет совсем простым.
Например, установите php-cs-fixer:
$ php composer.phar global require fabpot/php-cs-fixer:dev-master
Теперь исполняемый файл php-cs-fixer доступен глобально и вы можете запустить его из любого места (конечно, если вы настроили вашу переменную PATH).
composer help [command] Отображает справки для всех других команд: composer.phar help install.
composer init Создает базовый вариант файла composer.json в текущем каталоге.

При запуске команды, Composer будет интерактивно запрашивать значения полей для заполнения, используя при этом для некоторых полей умные значения по умолчанию.
composer licenses Показать информацию о лицензиях зависимостей.
composer list Выводит список допустимых команд.
composer remove Удаляет пакет из секций require или require-dev: remove vendor/package vendor/package2.
composer run-script Запустить вручную скрипты, объявленные в composer.json. Просто передайте название скрипта и при необходимости --no-dev, чтобы отключить режим dev.
composer search ключевые слова Поиск пакетов.

Команда поиска позволяет вам искать в репозиториях текущего проекта (см. секцию "repositories" в composer.json).  Обычно это будет только packagist.org. Вам нужно просто передать команде слова для поиска.
composer self-update Обновление самого composer.phar до последней версии.

Запуск команды self-update может решить некоторые проблемы и сэкономить ваше время.

Также вы можете использовать псевдоним selfupdate.
composer show Список всех установленных пакетов (composer show).
Список всех доступных пакетов (composer show --all).
Инфо об указанном пакете или его специфичной версии (composer show vendor/package [версия]).
composer suggest Выводит список всех пакетов, предложенных установленными. Опционально вы можете передать одно или несколько имён пакетов в формате vendor/package чтобы ограничить вывод только теми, что были предложены указанными.
composer status Если вам часто приходится модифицировать код своих зависимостей, а они были установленны "из исходников" (см. опцию --prefer-source команды require), то
команда status позволит вам проверить есть ли у вас локальные изменения в любой из них.
composer validate Проверяет файл composer.json.

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

Зависимости приложения

Когда вы создаете PHP-приложение или библиотеку, вы, как правило, имеете 3 вида зависимостей:

  • Жесткие зависимости: то, что требуется вашему приложению/библиотеке, чтобы работать
  • Необязательные зависимости: например, ваша PHP-библиотека может предоставлять адаптеры/бриджи для различных фреймворков
  • Зависимости для разработки: инструменты отладки, тестирования…

Жесткие зависимости:

{
    "require": {
        "acme/foo": "^1.0"
    }
}

Необязательные зависимости:

{
    "suggest": {
        "monolog/monolog": "Advanced logging library",
        "ext-xml": "Required to support XML"
    }
}

Необязательные зависимости для разработки:

{
    "require-dev": {
        "monolog/monolog": "^1.0",
        "phpunit/phpunit": "^6.0"
    }
}

Полезные замечания

При возникновении ошибки Composer Fatal error: Declaration of Fxp… нужно удалить плагины командой --no-plugins

composer global remove fxp/composer-asset-plugin --no-plugins

более подробно можно прочитать в справке

Затем нужно обновить Composer

composer self-update

И поставить новую версию плагина

composer global require "fxp/composer-asset-plugin:*"
Читать по теме
Интересные статьи