Задать вопрос
@xxxKNxxx
Молодец

Как реализовать взаимную зависимость в composer?

Есть два пакета, они зависят друг от друга.
composer.json у Package1:
{
   "name": "my/Package1",
   ...
   "require": {
   "my/Package2": "master"
   },
   "repositories":[
      {
        "type": "vcs",
        "url": "https://github.com/my/Package2"
      }
   ]
   ...
}


composer.json у Package2:
{
   "name": "my/Package2",
   ...
   "require": {
   "my/Package1": "master"
   },
   "repositories":[
      {
        "type": "vcs",
        "url": "https://github.com/my/Package1"
      }
   ]
   ...
}


При обновлении (composer update) Package1 composer выдает ошибку о том, что my/Package2 требует my/Package1 который не найден. При добавлении в зависимости Package1 самого себя не работает, так как случается коллизия имен пакетов в composer.json.
Собственно вопрос:
Как реализовать взаимную зависимость в composer?
  • Вопрос задан
  • 369 просмотров
Подписаться 1 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 2
И все-таки с архитектурой что-то не то. Вопрос звучит примерно так: чтобы получить яйцо - нужна курица, чтобы получить курицу - нужно яйцо, как получить и курицу и яйцо одновременно?
Unit-тесты на то и unit (модульные), что тестируют один модуль - изолированно!
Есть два выхода из ситуации:
1. Вынести общие вещи из обоих пакетов в третий, и включить его в зависимости первых двух.
2. У одного из пакетов убрать из зависимостей второй. Т.о. оба пакета все равно обновятся.
3. Официальные варианты решения: Why can't Composer load repositories recursively?
Ответ написан
Если два пакета взаимозависимы, то почему их два, а не один?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы