В этой главе рассказывается, как сделать вашу библиотеку устанавливаемой через Composer. Каждый проект - это пакет #Как только у вас есть Чтобы сделать этот пакет устанавливаемым, вы должны дать ему имя. Вы делаете это, добавляя свойство { "name": "acme/hello-world", "require": { "monolog/monolog": "1.0.*" } } В этом случае имя проекта - Примечание. Если вы не знаете, что использовать в качестве имени поставщика, ваше имя пользователя GitHub обычно является хорошей ставкой. Несмотря на то, что имена пакетов не чувствительны к регистру, соглашение используется в нижнем регистре и тире для разделения слов. Версии библиотеки #В подавляющем большинстве случаев вы будете поддерживать свою библиотеку с помощью какой-то системы управления версиями, такой как git, svn, hg или fossil. В этих случаях Composer выводит версии из вашего VCS, и вы не должны указывать версию в вашем файле Если вы держите пакеты вручную (то есть без VCS), вам нужно указать версию явно, добавив значение { "version": "1.0.0" } Примечание. Когда вы добавляете жестко заданную версию в VCS, версия конфликтует с именами тегов. Композитор не сможет определить номер версии. Версификация VCS #Composer использует функции ветвления и тега VCS для разрешения ограничений версии, указанных в поле Подробнее о том, как Composer обрабатывает теги и ветви и как он разрешает ограничения версии пакета, читайте статью о версиях. Заблокировать файл #Для вашей библиотеки вы можете зафиксировать файл Если вы не хотите фиксировать файл блокировки и используете git, добавьте его в Публикация на VCS #Когда у вас есть репозиторий VCS (система управления версиями, например git), содержащий файл Теперь, чтобы протестировать установку пакета { "name": "acme/blog", "require": { "acme/hello-world": "dev-master" } } В данном случае это имя не требуется, поскольку мы не хотим публиковать блог как библиотеку. Он добавляется здесь, чтобы уточнить, какой Теперь нам нужно сообщить в приложении блога, где найти зависимость от { "name": "acme/blog", "repositories": [ { "type": "vcs", "url": "https://github.com/username/hello-world" } ], "require": { "acme/hello-world": "dev-master" } } Подробнее о том, как работают репозитарии пакетов и какие типы доступны, см. В разделе Хранилища. Это все. Теперь вы можете установить зависимости, запустив команду Резюме. Любой git/svn/hg/fossil репозиторий, содержащий Издание для packagist #Хорошо, теперь вы можете публиковать пакеты. Но указание репозитория VCS каждый раз является громоздким. Вы не хотите, чтобы все ваши пользователи это делали. Другая вещь, которую вы, возможно, заметили, - это то, что мы не указали репозиторий пакетов для Packagist - это основной репозиторий пакетов для Composer, и он включен по умолчанию. Все, что публикуется на Packagist, доступно автоматически через Composer. Поскольку Monolog работает на Packagist, мы можем положиться на него, не указывая никаких дополнительных репозиториев. Если мы хотим опубликовать Вы просто посещаете Packagist и нажимаете кнопку «Отправить». Это побудит вас зарегистрироваться, если вы еще этого не сделали, а затем разрешите вам отправить URL-адрес в ваш репозиторий VCS, после чего Packagist начнет сканировать его. Как только это будет сделано, ваш пакет будет доступен для всех! |