Установка

Личный сайт Go-разработчика из Казани

Composer — это инструмент управления зависимостями в PHP. Он позволяет вам декларировать библиотеки, от которых зависит ваш проект, и он будет управлять ими, то есть устанавливать/обновлять их для вас.

Установка

1# Устанавливаем composer.phar в текущую папку 2curl -sS https://getcomposer.org/installer | php 3# Если вы используете этот подход, вам нужно будет вызвать Composer следующим образом: 4php composer.phar about 5 6# Устанавливаем бинарный файл в ~/bin/composer 7# Примечание: убедитесь, что ~/bin находится в переменной PATH вашего окружения 8curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filename=composer

Пользователи Windows должны следовать Инструкциям по установке в Windows

Подтверждение установки

1# Проверить версию и перечислить параметры 2composer 3 4# Получить дополнительную помощь для параметров 5composer help require 6 7# Проверить, способен ли Composer делать то, что ему нужно, и обновлён ли он 8composer diagnose 9composer diag # краткий вариант 10 11# Обновление Composer до последней версии 12composer self-update 13composer self # краткий вариант

Использование

Composer сохраняет ваши зависимости проекта в composer.json. Вы можете отредактировать этот файл, но лучше всего позволить Composer управлять им за вас.

1# Создать новый проект в текущей папке 2composer init 3# запускается интерактивная анкета с просьбой предоставить подробную информацию о вашем проекте. 4# Вы прекрасно можете оставить ответы пустыми, если не делаете другие проекты 5# зависимыми от создаваемого проекта. 6 7# Если файл composer.json уже существует, загрузите зависимости 8composer install 9 10# Чтобы загрузить только зависимости для готового продукта, т.е. 11# исключая зависимости для разработки 12composer install --no-dev 13 14# Добавить зависимость для готового продукта к этому проекту 15composer require guzzlehttp/guzzle 16# выяснит, какая существует последняя версия guzzlehttp / guzzle, 17# загрузит её и добавит новую зависимость в поле require файла composer.json. 18 19composer require guzzlehttp/guzzle:6.0.* 20# Загрузит последнюю версию, соответствующую шаблону (например, 6.0.2), 21# и добавит зависимость к полю require файла composer.json 22 23composer require --dev phpunit/phpunit:~4.5.0 24# Добавит как зависимость для разработки. 25# Будет использовать последнюю версию> = 4.5.0 и <4.6.0 26 27composer require-dev phpunit/phpunit:^4.5.0 28# Добавит как зависимость для разработки. 29# Будет использовать последнюю версию> = 4.5.0 и <5.0 30 31# Для получения дополнительной информации о совместимости версий Composer см. 32# [Документацию Composer по версиям] (https://getcomposer.org/doc/articles/versions.md) 33 34# Чтобы узнать, какие пакеты доступны для установки и в настоящее время установлены 35composer show 36 37# Чтобы узнать, какие пакеты в настоящее время установлены 38composer show --installed 39 40# Чтобы найти пакет со строкой «mailgun» в названии или описании 41composer search mailgun

Packagist.org является основным хранилищем для пакетов Composer. Существующие сторонние пакеты ищите там.

composer.json и composer.lock

Файл composer.json хранит параметры допустимых версий каждой зависимости вашего проекта, а также другую информацию.

Файл composer.lock хранит точную загруженную версию каждой зависимости. Никогда не редактируйте этот файл.

Если вы включите файл composer.lock в свой Git-репозиторий, каждый разработчик установит версии зависимостей, которые вы используете. Даже когда будет выпущена новая версия зависимости, Composer продолжит загрузку версии, записанной в lock-файле.

1# Если вы хотите обновить все зависимости до новейших версий, 2# которые по-прежнему соответствуют вашим предпочтениям для версий 3composer update 4 5# Если вам нужна новая версия определённой зависимости: 6composer update phpunit/phpunit 7 8# Если вы хотите перенести пакет на более новую версию 9#с изменением предпочитаемой версии, 10# вам может потребоваться сначала удалить старый пакет и его зависимости. 11composer remove --dev phpunit/phpunit 12composer require --dev phpunit/phpunit:^5.0

Автозагрузчик

Composer создаёт класс автозагрузки, который вы можете вызвать из своего приложения. Вы можете создавать экземпляры классов через пространство имён.

1require __DIR__ . '/vendor/autoload.php'; 2 3$mailgun = new Mailgun\Mailgun("key");

PSR-4-совместимый автозагрузчик

Вы можете добавить в автозагрузчик свои собственные пространства имён.

Добавьте поле autoload в composer.json:

1{ 2 "autoload": { 3 "psr-4": {"Acme\\": "src/"} 4 } 5}

Это скажет автозагрузчику искать что-либо в пространстве имён \Acme в папке src.

Вы также можете использовать PSR-0, карту классов или просто список файлов для включения. Также существует поле autoload-dev для пространств имён, предназначенных только для разработки.

При добавлении или изменении ключа автозагрузки вам необходимо перестроить автозагрузчик:

1composer dump-autoload 2composer dump # краткий вариант 3 4# Оптимизирует пакеты PSR0 и PSR4 для загрузки классов с помощью карты классов. 5# Медленно запускается, но улучшает производительность готового продукта. 6composer dump-autoload --optimize --no-dev

Кэш Composer

1# Composer хранит загруженные пакеты для использования в будущем. Очистите кэш с помощью: 2composer clear-cache

Устранение неполадок

1composer diagnose 2composer self-update 3composer clear-cache

Темы, которые ещё (пока) не включены в этот учебник

  • Создание и распространение ваших собственных пакетов на Packagist.org или в другом репозитории
  • Предварительные и пост-скриптовые перехватчики: запуск задач, когда происходят определенные события Composer

Ссылки