У меня есть каталог проектов. Каждый из них от git-репо.
Некоторые из этих проектов являются API-интерфейсами REST, и я хочу, чтобы все было указано как зависимость проекта, например:
htdocs
|- restApi1
|- restApi2
|- Vendor
|-Guzzle
|- restApi3
Таким образом, проект 2 зависит от restApi1 и restApi3.
Что я хочу сделать, так это «git checkout», если restApi1 или restApi3 отсутствуют, когда я устанавливаю restApi2 и собираю. Если это уже проверено, по факту composer install
или же update
Я хочу это git pull
и перестроить на пользовательскую команду, вот и все.
Поскольку у меня есть эти настройки в качестве проектов, и я могу работать над изменением в двух проектах, если я возьму в качестве зависимости вот так:
htdocs
|- restApi1
|- restApi2
|- Vendor
|- Guzzle
|- restApi1
|- restApi3
|- restApi3
Я должен сделать работу, чтобы перенести мои изменения в репозиторий, работать с новыми URL-адресами, и это нарушает мой рабочий процесс.
Так как я запускаю проекты через http на localhost, я могу проверить любую версию из любой точки мира и обращаться со всем, как с одним большим проектом, где все мои кодовые базы появляются один раз.
Мне интересно, есть ли способ сделать это в композиторе, или это неправильный способ сделать это.
Я также готов переключить свой поток, если есть лучший способ, который противоречит вышеизложенному.
Я подумал написать сценарий для запуска htdocs
это пронизывает и тянет все, но я думаю, что указание других проектов в качестве зависимости в файле композитора дает больше информации о том, как наши внутренние проекты используют друг друга.
Вы можете добавить restApi1 и restApi3 к вам composer.json:
"require" : {
...
"myproject/restApi1": "dev-master",
"myproject/restApi3": "dev-master"},
"repositories": {
"myproject/restApi1": {
"url": "https://github.com/myproject/restApi1.git",
"type":"git"},
"myproject/restApi3": {
"url": "https://github.com/myproject/restApi3.git",
"type":"git"},
}
затем composer update
каждый раз, когда вы хотите новые обновления.
Другой вариант заключается в использовании подмодули git.
Других решений пока нет …