Composer: Полное руководство по установке библиотек в PHP

Composer: Полное руководство по установке библиотек в PHP

Composer — это не просто менеджер зависимостей для PHP, а фундаментальный инструмент, который изменил экосистему разработки. Если вы хотите устанавливать, обновлять и управлять библиотеками в своих проектах профессионально, без Composer сегодня не обойтись. Это руководство проведёт вас от основ до продвинутых приёмов работы с пакетами.

Что такое Composer и зачем он нужен?

Composer — это инструмент для управления зависимостями в PHP. Представьте, что вам нужна библиотека для работы с изображениями или отправки email. Вместо того чтобы вручную скачивать архив, распаковывать и подключать файлы, вы просто говорите Composer: "мне нужна эта библиотека", и он делает всё остальное. Более того, он автоматически скачивает и все зависимости этой библиотеки.

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

Установка Composer

Перед установкой библиотек нужно установить сам Composer. Процесс зависит от вашей операционной системы:

Установка на Windows

  1. Скачайте установщик Composer-Setup.exe с официального сайта getcomposer.org
  2. Запустите установщик и следуйте инструкциям
  3. Установщик автоматически добавит Composer в PATH
  4. Проверьте установку командой composer --version в командной строке

Установка на Linux/macOS

  1. Откройте терминал
  2. Выполните команду: php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  3. Запустите установку: php composer-setup.php
  4. Перенесите файл в глобальную директорию: sudo mv composer.phar /usr/local/bin/composer

Установка первой библиотеки

Допустим, вы хотите установить популярную библиотеку для логирования Monolog. Вот как это делается:

  1. Создайте директорию для проекта и перейдите в неё
  2. Инициализируйте проект командой: composer init (ответьте на вопросы или нажимайте Enter для значений по умолчанию)
  3. Установите библиотеку: composer require monolog/monolog

Composer выполнит несколько действий:

  • Создаст или обновит файл composer.json с информацией о зависимостях
  • Скачает библиотеку monolog и все её зависимости в папку vendor/
  • Создаст файл composer.lock, который фиксирует точные версии установленных пакетов
  • Сгенерирует автозагрузчик vendor/autoload.php

Всегда добавляйте папку vendor/ в .gitignore. Файлы composer.json и composer.lock должны быть в репозитории, а сами библиотеки — нет.

Основные команды для работы с библиотеками

composer require [пакет]

Устанавливает пакет и добавляет его в composer.json. Можно указать версию: composer require monolog/monolog:^2.0

composer install

Устанавливает все зависимости, указанные в composer.lock (если он есть) или composer.json

composer update

Обновляет все пакеты до последних версий, соответствующих ограничениям в composer.json, и обновляет composer.lock

composer remove [пакет]

Удаляет пакет и обновляет composer.json

composer show

Показывает список установленных пакетов

Поиск библиотек

Composer использует репозиторий Packagist.org — главный каталог PHP-пакетов. Вы можете:

  • Искать пакеты на сайте Packagist
  • Использовать команду: composer search [ключевое слово]
  • Просматривать информацию о пакете: composer show [пакет]

Версии и ограничения

Composer использует семантическое версионирование. Вы можете указывать:

  • Точная версия: "1.2.3"
  • Диапазон: ">=1.0 <2.0"
  • Волна: "~1.2" (>=1.2 <2.0)
  • Каретка: "^1.2.3" (>=1.2.3 <2.0.0)
  • Dev-версия: "dev-master"

Автозагрузка классов

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

require __DIR__ . '/vendor/autoload.php';

// Теперь классы библиотек доступны автоматически
$log = new \Monolog\Logger('name');

Глобальная установка библиотек

Некоторые инструменты вроде PHPUnit или PHP-CS-Fixer удобно устанавливать глобально:

composer global require friendsofphp/php-cs-fixer

Глобальные пакеты устанавливаются в отдельную директорию и доступны из любой папки. Убедитесь, что путь к глобальным пакетам добавлен в PATH.

Собственные пакеты и репозитории

Вы можете создавать свои пакеты и подключать их через Composer. Для приватных пакетов можно использовать:

  • Приватные репозитории на Packagist (платно)
  • Собственный Satis-репозиторий
  • Прямые ссылки на Git-репозитории

Оптимизация автозагрузки

Для продакшена используйте оптимизацию автозагрузки:

composer install --no-dev --optimize-autoloader

Это ускорит работу приложения, так как Composer создаст карту классов вместо поиска по файловой системе.

FAQ: Часто задаваемые вопросы

Как удалить Composer?

На Windows используйте стандартное удаление программ. На Linux/macOS удалите файл composer.phar из /usr/local/bin/.

Почему composer install не устанавливает пакеты?

Убедитесь, что у вас есть файл composer.json. Если его нет, создайте его командой composer init или вручную.

Как обновить сам Composer?

Используйте команду: composer self-update

Что делать, если пакет не найден?

Проверьте правильность написания имени пакета на Packagist.org. Имена чувствительны к регистру.

Можно ли использовать Composer без интернета?

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

Как очистить кэш Composer?

Используйте команду: composer clear-cache

Что такое "dev-master"?

Это указание на последнюю версию в ветке master репозитория. Не используйте это в продакшене, так как код может быть нестабильным.

Как игнорировать обновления конкретного пакета?

Добавьте пакет в секцию "replace" или используйте патч-файлы через инструменты вроде cweagans/composer-patches.