Packagist — это главный каталог PHP-пакетов. Если совсем по-простому, это как маркетплейс для библиотек: заходишь, ищешь нужный пакет, копируешь команду установки и подключаешь его в проект через Composer.
Без шаманства, бубна и скачивания ZIP-архивов с мутных сайтов. XXI век всё-таки, хоть PHP и помнит динозавров.
Зачем нужен Packagist и Composer
Что такое Packagist
Packagist — официальный каталог пакетов для PHP. В нём лежат библиотеки, которые можно подключить к проекту.
Например, там можно найти пакеты для:
- работы с датами;
- отправки HTTP-запросов;
- генерации PDF;
- работы с изображениями;
- интеграций с API;
- Laravel, Symfony, WordPress и других PHP-проектов.
Проще говоря: если тебе нужна готовая PHP-библиотека, первым делом смотришь на Packagist.

Почему Packagist используют вместе с Composer
Composer — это менеджер зависимостей для PHP. Он устанавливает пакеты, следит за версиями и записывает всё в файлы проекта.
Packagist отвечает на вопрос:
Где найти пакет?
Composer отвечает на вопрос:
Как установить пакет в проект?
Обычно схема такая:
- Ищешь пакет на Packagist.
- Копируешь команду установки.
- Выполняешь её в терминале.
- Composer скачивает пакет и подключает его к проекту.
Как найти и выбрать PHP-пакет
Как найти пакет на Packagist
Зайди на сайт Packagist и введи в поиск то, что тебе нужно.
Например:
http client
Или:
pdf
Или конкретное название пакета:
guzzlehttp/guzzle
После поиска Packagist покажет список PHP-пакетов.

На что смотреть в результатах поиска
Не ставь первый попавшийся пакет просто потому, что он сверху. Пакеты — как грибы: некоторые полезные, некоторые лучше не трогать.
Смотри на несколько вещей:
- количество загрузок — популярные пакеты обычно надёжнее;
- дату последнего обновления — если пакет не обновлялся 6 лет, он мог уйти жить на пенсию;
- звёзды на GitHub — не главный показатель, но полезный сигнал;
- описание — должно быть понятно, что пакет делает;
- совместимость с PHP — пакет должен подходить под твою версию PHP.
Хороший пакет обычно выглядит живым: обновляется, имеет README, нормальную документацию и понятную команду установки.
Как читать страницу пакета на Packagist
Открой страницу пакета. Обычно она выглядит страшнее, чем есть на самом деле.
Главные блоки:
Название пакета
Например:
guzzlehttp/guzzle
Это и есть настоящее имя пакета. Оно состоит из двух частей:
vendor/package
Где:
vendor— автор или организация;package— название пакета.
Например:
laravel/framework
symfony/console
guzzlehttp/guzzle
Команда установки
На странице пакета обычно есть команда вида:
composer require vendor/package
Важно: vendor/package — это пример. Его нужно заменить на реальное имя пакета.
Например, для Guzzle команда будет такой:
composer require guzzlehttp/guzzle

Версии пакета
На странице Packagist можно увидеть доступные версии:
1.0.0
2.5.1
3.0.0
dev-main
Для новичка простое правило такое: если не знаешь, какую версию выбрать, ставь обычной командой без указания версии.
composer require vendor/package
Composer сам подберёт подходящую стабильную версию.
Требования пакета
Смотри блок requires. Там указано, что нужно пакету для работы.
Например:
php: ^8.1
ext-json: *
Это значит, что пакету нужен PHP версии 8.1 или выше и расширение json.
Если у тебя PHP 7.4, а пакет требует PHP 8.2, Composer честно скажет: “дружище, не сегодня”.
Как установить пакет через Composer
Шаг 1. Открой терминал в папке проекта
Перейди в папку своего проекта:
cd /path/to/your/project
Например:
cd ~/projects/my-php-app

Шаг 2. Выполни composer require
Команда установки выглядит так:
composer require vendor/package
Ещё раз: vendor/package нужно заменить на реальное имя пакета с Packagist.
Например:
composer require guzzlehttp/guzzle
Composer скачает пакет и добавит его в проект.
После установки в проекте обновятся файлы:
composer.json
composer.lock
И появится или обновится папка:
vendor/
Шаг 3. Проверь composer.json
Открой файл composer.json. Там появится новый пакет в блоке require.
Пример:
{
"require": {
"guzzlehttp/guzzle": "^7.0"
}
}
Это значит, что пакет установлен и Composer теперь будет учитывать его как зависимость проекта.

Шаг 4. Используй пакет в коде
Если пакет поддерживает автозагрузку Composer, обычно достаточно подключить:
require __DIR__ . '/vendor/autoload.php';
А дальше использовать классы пакета по документации.
Например:
use GuzzleHttp\Client;
$client = new Client();
$response = $client->get('https://example.com');
echo $response->getBody();
Главное: не пытайся угадать API пакета по звёздам. Открой README. Оно там не для красоты лежит.
Как выбрать версию, обновить или удалить пакет
Как установить конкретную версию
Иногда нужна конкретная версия пакета. Тогда можно указать её при установке:
composer require vendor/package:^2.0
Например:
composer require guzzlehttp/guzzle:^7.0
Символ ^ означает: можно ставить совместимые версии, но без перехода на следующую мажорную версию.
Например:
^7.0
Разрешает версии:
7.0
7.1
7.5
7.9
Но не разрешает:
8.0
Потому что новая мажорная версия может сломать совместимость.
Как обновить пакет
Чтобы обновить конкретный пакет:
composer update vendor/package
Например:
composer update guzzlehttp/guzzle
Чтобы обновить все зависимости проекта:
composer update
Но с этой командой аккуратно. Она может обновить много пакетов сразу. Иногда после этого проект начинает вести себя как кот после купания: вроде живой, но уже не тот.
Для рабочих проектов лучше обновлять конкретный пакет.

Как удалить пакет
Чтобы удалить пакет:
composer remove vendor/package
Например:
composer remove guzzlehttp/guzzle
Composer удалит пакет из composer.json, обновит composer.lock и почистит зависимости, если они больше не нужны.
После удаления проверь код. Если ты где-то использовал классы пакета, проект может начать ругаться.
Частые ошибки новичков
Копируют vendor/package как есть
Ошибка:
composer require vendor/package
Так делать не надо. Это шаблон.
Нужно взять настоящее имя пакета со страницы Packagist.
Правильно:
composer require guzzlehttp/guzzle
Ставят заброшенный пакет
Если пакет не обновлялся много лет, лучше поискать альтернативу.
Особенно если проект новый и работает на свежей версии PHP.
Не читают требования к PHP
Пакет может требовать PHP 8.2, а у тебя PHP 8.1 или 7.4. В этом случае установка не пройдёт.
Проверь версию PHP:
php -v
Запускают composer update без понимания
Команда:
composer update
обновляет зависимости. Иногда — слишком бодро.
Для новичка безопаснее обновлять конкретный пакет:
composer update vendor/package
Удаляют папку vendor вручную и пугаются
Папку vendor/ можно восстановить командой:
composer install
Composer прочитает composer.lock и установит нужные версии пакетов заново.
Не коммитят composer.lock
Для обычного проекта composer.lock нужно хранить в Git. Он фиксирует точные версии пакетов.
Иначе у тебя на компьютере будет одна версия, на сервере другая, а виноват снова будет “этот ваш PHP”.
Финальный чеклист и FAQ
Финальный чеклист
Перед установкой пакета проверь:
- Пакет найден на Packagist.
- Название выглядит как
vendor/package. - У пакета есть README или документация.
- Пакет недавно обновлялся.
- Он подходит под твою версию PHP.
- Команда установки скопирована правильно.
- После установки пакет появился в
composer.json. - Код использует пакет по документации.
composer.lockсохранён в Git.
FAQ
Что такое Packagist простыми словами?
Packagist — это каталог PHP-пакетов. Через него Composer находит и устанавливает библиотеки в проект.
Что такое Composer?
Composer — это менеджер зависимостей для PHP. Он устанавливает, обновляет и удаляет PHP пакеты.
Как пользоваться Packagist новичку?
Найди пакет через поиск, открой его страницу, скопируй команду composer require, выполни её в папке проекта и проверь документацию пакета.
Что значит vendor/package?
Это формат имени пакета. vendor — автор или организация, package — название пакета.
Например:
symfony/console
laravel/framework
guzzlehttp/guzzle
Как установить пакет PHP через Composer?
Выполни команду:
composer require vendor/package
Только замени vendor/package на реальное имя пакета с Packagist.
Как удалить пакет из проекта?
Используй команду:
composer remove vendor/package
Например:
composer remove guzzlehttp/guzzle
Можно ли пользоваться PHP без Packagist?
Можно. Но если проект использует сторонние библиотеки, Packagist и Composer сильно упрощают жизнь. Без них придётся вручную скачивать код, следить за версиями и чинить зависимости. Это путь сильных духом и уставших глазами.
Короткий итог
Packagist нужен, чтобы находить PHP пакеты. Composer нужен, чтобы устанавливать их в проект.
Базовый рабочий сценарий такой:
composer require vendor/package
Где vendor/package — настоящее имя пакета с Packagist.
Научился искать пакет, читать страницу, ставить, обновлять и удалять — уже можешь спокойно пользоваться Packagist без ощущения, что попал в кабину самолёта.