Ответ
Composer — это менеджер зависимостей для PHP, стандарт де-факто для управления библиотеками (пакетами) в проектах. Он решает проблему «адской зависимости», автоматически устанавливая и обновляя необходимые пакеты и их версии.
Как это работает:
- В корне проекта создаётся файл
composer.json, в котором декларативно описываются требуемые пакеты (зависимости). - Composer читает этот файл, находит пакеты в основном репозитории Packagist.org, разрешает их зависимости и скачивает всё в папку
vendor/. - Создаётся файл
composer.lock, который фиксирует точные версии всех установленных пакетов, гарантируя воспроизводимость окружения. - 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, который структурирует проекты, упрощает совместную работу и интеграцию стороннего кода.