Composer — это стандартный менеджер зависимостей в PHP. Он нужен, чтобы не скачивать библиотеки вручную, не копировать папки в проект и не подключать десятки файлов через require. В этом уроке создадим маленький проект, установим пакет через composer require и подключим автозагрузку
Если PHP без Composer похож на набор отдельных файлов, то Composer делает проект собранным и воспроизводимым
Что получится в конце
Мы установим пакет nesbot/carbon и выведем дату:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
echo Carbon::now()->format('d.m.Y H:i');
Запуск:
php index.php
Проверяем PHP и Composer
Сначала PHP:
php -v
Потом Composer:
composer --version
Если Composer не установлен, используйте официальный сайт:
https://getcomposer.org/download/
Не ставьте Composer из случайных архивов. Это инструмент, который будет скачивать код в ваши проекты
Создаем проект
mkdir php-composer-demo
cd php-composer-demo
Инициализировать проект можно командой:
composer init
Но для первого примера проще сразу установить пакет:
composer require nesbot/carbon
После команды появятся:
composer.json
composer.lock
vendor/
composer.json описывает зависимости проекта. composer.lock фиксирует точные версии. vendor содержит скачанные пакеты
Подключаем autoload
Создайте index.php:
<?php
require __DIR__ . '/vendor/autoload.php';
use Carbon\Carbon;
echo Carbon::now()->format('d.m.Y H:i');
Команда:
require __DIR__ . '/vendor/autoload.php';
подключает автозагрузчик Composer. После этого PHP умеет находить классы установленных библиотек
Запустите:
php index.php
Что внутри composer.json
Файл будет похож на:
{
"require": {
"nesbot/carbon": "^3.0"
}
}
Версия может отличаться. Смысл простой: проект требует пакет nesbot/carbon
Не редактируйте vendor руками. Если нужна зависимость, используйте Composer. Если зависимость больше не нужна, удаляйте через Composer
composer install и composer update
Команда:
composer install
ставит зависимости по composer.lock. Ее обычно используют после скачивания проекта
Команда:
composer update
обновляет зависимости в рамках правил composer.json и переписывает lock-файл. Новичку не стоит запускать update без причины, особенно в рабочем проекте
Практическое правило: получили проект — composer install; хотите добавить пакет — composer require
Что коммитить
В обычном PHP-проекте коммитят:
composer.json
composer.lock
Папку vendor чаще не коммитят, потому что ее можно восстановить командой composer install. На shared-хостинге иногда приходится загружать vendor, но в репозитории это все равно обычно лишний шум
Частые ошибки
composer не найден. Composer не установлен или не добавлен в PATH
vendor/autoload.php not found. Вы не запускали composer install или находитесь не в той папке
Class not found. Проверьте require vendor/autoload.php, namespace и пакет
Версии конфликтуют. Один пакет требует одну версию зависимости, другой — другую. Смотрите текст ошибки Composer, он обычно объясняет конфликт
Что может быть еще интересно по этой теме
Composer нужен для маленького сайта? Если сайт состоит из одного файла, нет. Но как только появляются библиотеки, автозагрузка и структура проекта, Composer становится нормой
Composer и npm похожи? По роли да: оба управляют зависимостями. Но экосистемы и файлы разные
Можно ли использовать Composer на хостинге? Да, если хостинг дает shell-доступ. Если нет, зависимости часто ставят локально и загружают проект вместе с vendor
Нужен ли Composer для Laravel? Да. Laravel-проекты управляются через Composer
Что открыть дальше
- PHP и MySQL через PDO: первая база без SQL-инъекций — часто зависимости появляются рядом с базой и конфигами.
- Laravel: первый route и controller для новичка — Laravel начинается с Composer.
- Ошибки PHP: белый экран, error log и display_errors — поможет, если autoload не находится.
- PHP для WordPress: первый маленький shortcode — WordPress обычно живет отдельно от Composer, но современная разработка плагинов может его использовать.



