2015-03-28 2 views
1

Я не могу заставить композитора нормально работать с локальными пакетами.Локальные пакеты композиторов

Пакет:

{ 
    "name": "package/A", 
    "repositories": [ 
    { 
     "type": "vcs", 
     "url": "../B" 
    } 
    ], 
    "require": { 
    "package/B": "dev-master" 
    } 
} 

пакет B:

{ 
    "name": "package/B", 
    "repositories": [ 
    { 
     "type": "vcs", 
     "url": "../C" 
    } 
    ], 
    "require": { 
    "package/C": "dev-master" 
    } 
} 

пакет C:

{ 
    "name": "package/C", 
} 

Теперь установка пакета B прекрасно работает и решает пакет C правильно. Установка пакета A завершается сбоем, поскольку он не может разрешить пакет C из пакета B, который является единственной зависимостью пакета A.

Я ничего не мог найти об этом @google, похоже, что композитор не может справиться такая сложность в локальных пакетах. Надеюсь, я ошибаюсь.

Вот небольшая иллюстрация для лучшего понимания этой проблемы. enter image description here

+1

Недавний дубликат: https://stackoverflow.com/questions/29270219/composer-doesnt-find-local-vcs-dependency/29270545#29270545 – estus

+1

@estus Благодарим за подсказку. Это точно такая же проблема. Я использую «satis» для преодоления этой проблемы. –

ответ

1

Composer doesn't load local repos recursively.

1) Вы можете объявлять зависимости для B и C в A. Вы должны переопределить зависимости в своем composer.json. Здесь это добавит еще несколько требований, и репозиторий определяет композитор.json из A.

2) Или вы можете настроить локальный прокси-сервер Satis, который обслуживает ваши частные пакеты.

Частная или публичная публикация зависимостей разрешит ситуацию.

Смежные вопросы