Создание нового типа виртуального пакета Composer - PullRequest
1 голос
/ 18 октября 2019

Я недавно обнаружил, что composer поддерживает концепцию виртуального пакета . Насколько я понимаю, виртуальные пакеты позволяют разработчикам пакетов добавлять абстрактный / интерфейсный пакет в список своих проектов require d модулей. Если кто-то хочет использовать модуль с зависимостью виртуального пакета в вашем собственном проекте, вам также потребуется второй пакет, в котором виртуальный пакет был указан в разделе provides.

т.е. если пакет имеет виртуальный пакет php-http / client-реализация в качестве требования, вам также потребуется пакет типа php-http / guzzle6-adapter , который предоставляет этот пакет.

Мой вопрос: если бы я хотел создать новый виртуальный пакет, как бы я это сделал? т.е. как работает - композитор? packagist.org? знаете, что php-http/client-implementation это виртуальный пакет? Кто-то должен был опубликовать этот пакет как виртуальный? Или виртуальные пакеты как-то получены? Если Packagist волшебным образом получает их, значит ли это, что виртуальные пакеты не будут работать в не-Packagist репозиториях?

1 Ответ

1 голос
/ 18 октября 2019

Виртуальные пакеты являются производными только потому, что они являются пакетами, в которых нет физического пакета.

Невозможно точно определить их. Как только вы создадите пакет, который «предоставляет» виртуальный пакет, он будет существовать.

Я считаю, что концепция видна как виртуальные пакеты только для того, чтобы помочь всем нам увидеть, как она работает. Они должны работать с любым типом репозитория, поскольку директивы require / Обеспечение являются частью программного обеспечения композитора

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...