Сначала подготовь composer.json. Название в формате vendor/package, корректный type, указание autoload (чаще всего PSR-4), описание, лицензия и ссылка на репозиторий – это минимум. Убедись, что всё валидно: composer validate покажет ошибки до публикации.
Репозиторий должен быть публичным. GitHub – самый удобный вариант. Создай новый проект, запушь туда весь код вместе с метаданными Composer. Не забудь про тег: версия в формате v1.0.0 обязательна, иначе Packagist не увидит релиз.
Далее – регистрация на packagist.org. Авторизуйся через GitHub, нажми «Submit», вставь ссылку на репозиторий и подтверди. Если всё собрано правильно, появится карточка пакета, Composer начнёт видеть его в поиске, а зависимые проекты – подтягивать при установке.
Чтобы не обновлять вручную – настрой Webhook. В настройках GitHub добавь https://packagist.org/api/github в разделе Webhooks. Так каждый push будет автоматически обновлять информацию о версии и зависимостях на стороне каталога.
Вот HTML-план информационной статьи с заголовками и двумя прикладными заголовками , как ты просил:
1. Инициализация структуры проекта
Открой терминал, перейди в нужную директорию и запусти composer init. Укажи название в формате vendor/name, описание, автора, лицензию и зависимости. Composer автоматически сгенерирует composer.json.
2. Настройка автозагрузки
Добавь в composer.json раздел autoload с PSR-4. Например:
"autoload": {
"psr-4": {
"MyVendor\\MyPackage\\": "src/"
}
}
После сохранения файла выполни composer dump-autoload, чтобы Composer сгенерировал автозагрузчик.
3. Подготовка к публикации
Создай публичный репозиторий на GitHub. Закоммить composer.json, код из src и сделай хотя бы один релиз. Не забудь о файле README.md с примером использования и инструкциями.
4. Регистрация в каталоге
Перейди на packagist.org, авторизуйся через GitHub и нажми «Submit». Вставь ссылку на репозиторий и нажми «Check». Если всё настроено правильно – проект появится в общем доступе.
5. Пример: библиотека для конвертации валют
В src/CurrencyConverter.php опиши класс с методом convert($amount, $from, $to), использующим API с курсами. Проверь работу с PHPUnit, добавь инструкции в README, протестируй в отдельном проекте через composer require.
6. Пример: пакет для валидации email
Реализуй метод isValid($email) с фильтрацией и регулярками. Покрой тестами. В описании на GitHub укажи, как расширять правила. Убедись, что composer.json содержит правильные namespace и метаданные.
Настройка структуры проекта и создание composer.json для будущей библиотеки
Сначала размести исходный код в каталоге src/. Это стандарт для автозагрузки через PSR-4. Например, если пространство имён – Vendor\Package, структура должна быть такой:
/project-root ├── src/ │ └── MyClass.php
Внутри MyClass.php укажи пространство имён:
<?php
namespace Vendor\Package;
class MyClass {
// ...
}
Минимальный composer.json
Файл composer.json положи в корень. Пример базовой конфигурации:
{
"name": "vendor/package",
"description": "Краткое описание",
"type": "library",
"license": "MIT",
"autoload": {
"psr-4": {
"Vendor\\Package\\": "src/"
}
},
"require": {}
}
"name" должен соответствовать формату vendor/package и быть уникальным. "psr-4" обязательно указывает путь к коду, иначе автозагрузка работать не будет. Для тестирования удобнее всего добавить "require-dev" и "autoload-dev" с нужными инструментами и тестовым пространством имён.
Проверка и генерация автозагрузки
После настройки запусти composer dump-autoload, чтобы Composer сгенерировал файл автозагрузки. Убедись, что всё подгружается корректно, подключив vendor/autoload.php и вызвав классы из пространства имён. Если структура выстроена правильно, Composer сам найдёт нужные файлы.
Пошаговая инструкция по публикации библиотеки на Packagist и обновлению версий
Подготовка репозитория
Открой репозиторий на GitHub. В корне проекта должен быть файл composer.json с заполненными полями name, description, license, autoload и version (если не используешь теги). Обязательно укажи публичный URL репозитория и, если нужен автозагрузчик, пропиши PSR-4 или PSR-0.
Регистрация на платформе
Зайди на packagist.org, залогинься через GitHub. Нажми «Submit» и вставь ссылку на свой репозиторий. После подтверждения проект появится в каталоге. Packagist автоматически синхронизирует теги и версии с GitHub – главное, чтобы репозиторий был публичным и содержал корректный composer.json.
Чтобы обновить версию – создай новый тег, например: git tag v1.1.0, затем git push origin v1.1.0. Packagist подхватит новую метку, если включена GitHub Webhook-интеграция. Если её нет – нажми «Update» на странице пакета вручную или добавь webhook через настройки репозитория: URL – https://packagist.org/api/github, метод – POST.
Каждая новая версия должна иметь уникальный тег, соответствующий семантическому формату: vMAJOR.MINOR.PATCH. Не используй тег latest – он не обрабатывается. Если нужно временно скрыть релиз, удали тег и нажми «Delete» у нужной версии на сайте.