Как я могу превратить несвязанный компонент приложения в его собственный пакет, но при этом сохранить его в родительском приложении?

Если какой-то конкретный компонент приложения достаточно отделен от родительского, чтобы его могли использовать другие приложения, как бы мне было сделать этот компонент в своем собственном пакете composer, но при этом все еще поддерживать его в рамках родительского приложения?

В качестве примера я хотел бы добиться того, что Laravel сделал со своим компонентом базы данных: https://github.com/illuminate/database

Поскольку в нем говорится ТОЛЬКО ЧТЕНИЕ, у меня сложилось впечатление, что это «поддерево» по-прежнему поддерживается в родительском git-репозитории laravel / framework, но при этом сохраняет характеристики обычного git-репо, чтобы его можно было распространять в виде пакета Composer.

Точное ли у меня впечатление? Как мне добиться этого колдовства?

Заранее спасибо.

-2

Решение

Это делается с помощью git subtree split, как объяснено в GitHub помогите:

$ git filter-branch --prune-empty --subdirectory-filter \
YOUR_FOLDER_NAME master
# Filter the master branch to your directory and remove empty commits
# Rewrite 48dc599c80e20527ed902928085e7861e6b3cbe6 (89/89)
# Ref 'refs/heads/master' was rewritten

Теперь YOUR_FOLDER_NAME папка стала корнем вашего проекта, и вы можете отправить ее на другой пульт (другой репозиторий). Этот другой репозиторий теперь содержит только YOUR_FOLDER_NAME и вы можете создать пакет для этого.

0

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

Других решений пока нет …

По вопросам рекламы [email protected]