Статьи

Перечисление пакетов на Packagist для Composer

Теперь я уверен, что вы из первых рук видели, как Composer может помочь в управлении зависимостями; Я сам полюбил его, используя его для загружаемых примеров кода на GitHub для наших статей. Читатели могут просматривать только соответствующий исходный код на GitHub, если они захотят, и быстрая установка git clonecomposer install Но как насчет перехода на следующий уровень?

Вы создали потрясающую библиотеку, и теперь вы готовы открыть ее и поделиться с миром. Надеюсь, что кто-то может получить пользу от вашей работы, и, возможно, вы даже получите сообщение об ошибке или патч, чтобы сделать библиотеку еще лучше. Но ничего этого не может произойти, если люди не смогут найти его … и современный путь все больше становится через Composer и Packagist.

В этой статье я покажу вам, какая информация необходима в вашем файле composer.json

Файл composer.json

В документации Composer говорится, что каждый проект представляет собой пакет. Действительно, ваш проект — это просто анонимный пакет в глазах Composer, будь то библиотека, полноценное приложение или что-то еще между ними.

Как только у вас есть composer.json в каталоге, этот каталог является пакетом. […] Единственное различие между вашим проектом и библиотеками состоит в том, что ваш проект представляет собой пакет без имени.

Итак, важным первым шагом является установка имени для вашего пакета. Имена пакетов создаются путем объединения имени поставщика и имени проекта, например, psr / log или laravel / framework . Что вы должны использовать в качестве имени вашего поставщика? Хороший выбор — ваше имя пользователя GitHub.

Хотя это все, что вам действительно нужно, полезно указать некоторую дополнительную информацию в файле composer.json

 "name": "tboronczyk/testlib",
"description": "A simple test library",
"homepage": "https://github.com/tboronczyk/testlib",
"license": "WTFPL",
"authors": [
    {
        "name": "The TestLib Team",
        "homepage": "https://github.com/tboronczyk/testlib/graphs/contributors"
    }
]

Я видел во многих проектах несколько отдельных записей для каждого автора, вероятно, поскольку это то, что представлено в документации в качестве примера, но я предпочитаю приведенную выше практику перечисления имени как команды и предоставления ссылки на график участников на GitHub. Таким образом, каждый получает кредит, и вам не придется постоянно обновлять файл composer.json

Также важно указать требования к вашей библиотеке. Мы знакомы с разделом require Но его также можно использовать для указания «пакетов платформы».

Пакеты платформы — это не фактические пакеты, которые устанавливаются через Composer, а скорее средство указания требований к среде выполнения, таких как минимальная необходимая версия PHP или любые необходимые расширения PHP.

 "require": {
    "php": ">=5.3",
    "ext-zip": "*",
    "ext-fileinfo": "*",
    "phpunit/phpunit": "3.1.*"
}

Листинг на Packagist

Получив код вашей библиотеки для GitHub, вы захотите разместить его на Packagist, чтобы другие могли его найти и легко загрузить. К счастью, Packagist позволяет очень легко рекламировать вашу библиотеку.

Перейдите на packagist.org и нажмите гигантскую зеленую кнопку «Отправить пакет» в правом верхнем углу. Если вы еще не вошли в систему, сначала вы попадете в форму входа, но в конечном итоге вы попадете на страницу отправки пакета.

packagist-1

Введите URL своего проекта на GitHub и нажмите кнопку «Проверить». Packagist проверит адрес, а затем предоставит вам гигантскую кнопку «Отправить». Вуаля! Это так просто.

Packagist сканирует ваш репозиторий GitHub на наличие веток и файл composer.json

packagist-2

Позвольте мне обратить ваше внимание на уведомление на странице пакета, которое предупреждает, что пакет не обновляется автоматически, потому что у вас не включена ловушка Packagist на GitHub. Автообновление — это хорошо, так как Packagist сделает последние версии доступных по мере того, как вы обновите свой код и передадите его в GitHub. Итак, позаботимся об этом.

Сначала перейдите по ссылке с вашим именем пользователя в верхнем правом углу Pacakgist, чтобы перейти на страницу вашей учетной записи. Там вы найдете свой токен API и краткие инструкции по настройке сервисного хука.

Во-вторых, зайдите на страницу вашего репозитория на GitHub и выберите пункт меню «Настройки».

packagist-3

Выберите Сервисные хуки в боковом меню, выберите Packagist из списка хуков, а затем укажите свою информацию в форме. Вам обязательно нужно будет предоставить свой токен API, который был указан на странице вашей учетной записи Packagist, и ваше имя пользователя в Packagist, если оно не совпадает с вашим именем пользователя GitHub, но вы можете оставить поле Домен пустым. Затем установите флажок «Активировать» и отправьте данные.

packagist-4

Вывод

Зарегистрировать ваш пакет на Packagist, чтобы его можно было легко загрузить через Composer другими разработчиками, легко, хотя многие могут подумать, что это сложно, потому что они никогда не делали этого раньше. Надеемся, что эта статья поможет вам поднять использование Composer на новый уровень, потому что это немного больше, чем просто указать название пакета и нажать гигантскую зеленую кнопку. А теперь, поделитесь этим замечательным кодом, над которым вы так усердно работали, с остальным миром!

Изображение через Fotolia