Composer — менеджер зависимостей PHP
20 минЧто такое Composer?
Composer — это менеджер зависимостей для PHP. Он позволяет легко устанавливать и использовать библиотеки (пакеты) в вашем проекте.
Представьте: вам нужна библиотека для валидации email. Вместо того чтобы скачивать файлы вручную, вы просто пишете:
composer require respect/validation
И Composer автоматически скачает библиотеку и настроит автозагрузку!
Зачем нужен Composer?
- Установка библиотек — тысячи готовых пакетов
- Автозагрузка классов — не нужно писать require вручную
- Управление версиями — можно указать нужную версию пакета
- Стандарт индустрии — в 2026 все PHP проекты используют Composer
Установка Composer
Windows
- Скачайте установщик: getcomposer.org/Composer-Setup.exe
- Запустите установщик
- Следуйте инструкциям
Mac/Linux
# Скачать установщик
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# Установить
php composer-setup.php
# Переместить в глобальную папку (опционально)
sudo mv composer.phar /usr/local/bin/composer
Проверка установки
Откройте терминал и выполните:
composer --version
Должно показать версию, например: Composer version 2.7.0
Инициализация проекта
В папке вашего проекта (my-blog) выполните:
composer init
Composer задаст несколько вопросов. Можете нажимать Enter для значений по умолчанию.
В итоге создастся файл composer.json — это конфигурация вашего проекта.
Установка пакета
Давайте установим простую библиотеку для работы с переменными окружения:
composer require vlucas/phpdotenv
Composer:
- Скачает пакет
vlucas/phpdotenv - Создаст папку
vendor/с кодом библиотеки - Создаст файл
composer.lock(фиксирует версии) - Обновит
composer.json
Автозагрузка
Composer автоматически создаёт файл vendor/autoload.php. Подключите его в начале config.php:
<?php
declare(strict_types=1);
// Автозагрузка классов из Composer
require_once __DIR__ . "/../../vendor/autoload.php";
// Теперь можно использовать установленные пакеты
use Dotenv\Dotenv;
// Загружаем .env файл
$dotenv = Dotenv::createImmutable(__DIR__ . "/../../");
$dotenv->load();
// ... остальной код
?>
Использование phpdotenv
Теперь вместо нашей функции loadEnv() можно использовать профессиональную библиотеку:
// Получаем переменные из .env
$db_host = $_ENV["MYSQL_HOST"] ?? Dotenv::createImmutable(__DIR__ . "/../../")->load();
$db_name = $_ENV["MYSQL_DATABASE"] ?? "blog";
$db_user = $_ENV["MYSQL_USER"] ?? "blog_user";
$db_pass = $_ENV["MYSQL_PASSWORD"] ?? "blog_pass";
Или проще:
$dotenv = Dotenv::createImmutable(__DIR__ . "/../../");
$dotenv->load();
$db_host = $_ENV["MYSQL_HOST"] ?? "mysql";
$db_name = $_ENV["MYSQL_DATABASE"] ?? "blog";
$db_user = $_ENV["MYSQL_USER"] ?? "blog_user";
$db_pass = $_ENV["MYSQL_PASSWORD"] ?? "blog_pass";
Структура проекта с Composer
my-blog/
├── .env
├── composer.json ← конфигурация Composer
├── composer.lock ← зафиксированные версии
├── vendor/ ← установленные пакеты (не коммитить в Git!)
│ ├── autoload.php ← автозагрузка
│ └── ...
├── docker-compose.yml
├── docker/
└── public/
└── ...
Важно: .gitignore
Создайте файл .gitignore в корне проекта:
# Composer
/vendor/
composer.lock
# .env файлы (содержат пароли!)
.env
# Docker
mysql_data/
Эти файлы не должны попадать в Git!
Популярные пакеты
Вот несколько полезных пакетов для вашего блога:
vlucas/phpdotenv— работа с .env файламиrespect/validation— валидация данныхmonolog/monolog— логированиеsymfony/console— CLI команды
Что дальше?
Composer — это основа современной PHP разработки. В следующих уроках мы будем использовать его для установки библиотек.
Материалы по теме
- Глоссарий digital-терминов Глоссарий
- Статьи блога по разработке и SEO Блог
- Практические чеклисты по внедрению Чеклисты