формат имени поставщика композитора для вложенного каталога

Стандартный формат имени пакета для пакета композитора vendor/pkName,
У меня есть следующая структура каталогов:

 - myVendorName

- extensions
- yii2
-Ext1
-Ext2 and so on

- bundles
- bundle1
- bundle2
- bundle3 and so on

- toolkit
- forlder1
- folder2 and so on

Это организация, которую я дал на своем жестком диске, но реальные проекты похожи на:

  - myVendorName/extensions/yii2/ext1
- myVendorName/extensions/yii2/ext2
- myVendorName/bundles/bundle1
- myVendorName/bundles/bundle2
- myVendorName/bundles/bundle3
- myVendorName/toolkit

Мои вопросы по этому поводу:

  1. Можно хранить все в одном git-репозитории и требовать от композитора только необходимые подпакеты (например: требуют только myVendorName/toolkit а также myVendorName/bundles/bundle3)

  2. С помощью composer можно поддерживать расширенный формат имени (поэтому в composer.json требуют раздела, требуют для myVendorName/bundles/bundle3 вместо myVendorName/bundle3)

Есть ли способ достичь этих 2 баллов?

0

Решение

Вы можете достичь (1), используя git subtree split. Используя этот метод, вы разделяете отдельные каталоги основного хранилища на новый и помещаете его в github. Таким образом, все пакеты по-прежнему имеют свой собственный репозиторий, но вам нужно поддерживать только один репозиторий (многие крупные проекты используют его, например Symfony, Laravel и т. Д.).

(2) не поддерживается. Вы можете использовать что-то вроде my_vendor/third-bundle вместо my_vendor/bundles/third, Каталог в любом случае не важен, так как Composer просто автоматически загрузит все классы внутри пакетов (если они имеют правильную конфигурацию автозагрузки).

1

Другие решения

Можно хранить все в одном git-репозитории и требовать с
составить только необходимые подпакеты (например: требуется только
«myVendorName / toolkit» и «myVendorName / bundles / bundle3»)

Да. Если в разных проектах используются одни и те же компоненты, для которых может потребоваться определенный набор зависимостей, рассмотрите возможность сделать их повторно используемым пакетом вместо пустого пакета с composer.json. Также обратите внимание, что require-dev решается только в корневом пакете.

Можно поддерживать расширенный формат имени с помощью композитора (так
в composer.json требуется раздел, требуется для
«myVendorName / bundles / bundle3» вместо «myVendorName / bundle3»

Да. В repositories, предоставлять vcs или же package хранилище и заставить его решить myVendorName/bundles/bundle3, url в vcs может ссылаться на локальный репозиторий git. Нет простого способа присвоить псевдониму «myVendorName / bundle3» значение «myVendorName / bundles / bundle3», что делает эту идею непрактичной.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector