Сначала подготовь 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» у нужной версии на сайте.