Что такое Composer в PHP?

«Что такое Composer в PHP?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Composer — это менеджер зависимостей для PHP, стандарт де-факто для управления библиотеками (пакетами) в проектах. Он решает проблему «адской зависимости», автоматически устанавливая и обновляя необходимые пакеты и их версии.

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

  1. В корне проекта создаётся файл composer.json, в котором декларативно описываются требуемые пакеты (зависимости).
  2. Composer читает этот файл, находит пакеты в основном репозитории Packagist.org, разрешает их зависимости и скачивает всё в папку vendor/.
  3. Создаётся файл composer.lock, который фиксирует точные версии всех установленных пакетов, гарантируя воспроизводимость окружения.
  4. Composer предоставляет автозагрузчик классов (vendor/autoload.php), который автоматически подключает классы из установленных пакетов и вашего собственного кода (по стандарту PSR-4).

Пример базового composer.json:

{
    "require": {
        "laravel/framework": "^10.0",
        "guzzlehttp/guzzle": "^7.5"
    },
    "autoload": {
        "psr-4": {
            "App\": "app/"
        }
    },
    "require-dev": {
        "phpunit/phpunit": "^10.0"
    }
}

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

  • composer install — читает composer.lock (или composer.json) и устанавливает все зависимости. Это команда для развёртывания проекта.
  • composer update — обновляет зависимости до последних версий, разрешая их согласно правилам в composer.json, и обновляет composer.lock. Используется во время разработки.
  • composer require vendor/package — удобный способ добавить новую зависимость. Composer добавит её в composer.json и выполнит установку.
  • composer dump-autoload — обновляет автозагрузчик, например, после добавления новых классов в проект.

Итог: Composer — это незаменимый инструмент в экосистеме PHP, который структурирует проекты, упрощает совместную работу и интеграцию стороннего кода.