В composer.json прописана зависимость от пакета vendor/a:
{
"require": {
"vendor/a": "^0.1.0"
}
}
У пакета vendor/a в свою очередь зависимость от пакета vendor/b:
{
"require": {
"vendor/b": "1.*"
}
}
Допустим пакет vendor/b не работает так как надо (есть ошибки) и мы хотим поправить пакет vendor/b. Чтобы ускорить процесс поставки поправленного пакета vendor/b, хочется сделать так, чтобы композер при поиске зависимостей использовал наш форк (на время, пока разработчик пакета примет пулл-реквест vendor/b). При этом, прежде чем запушить правки по пакету, хочется проверить работу наших правок
Вопрос: можно ли заставить композер брать локальную копию пакета, чтобы не править исходники во время тестов прямо в папке /vendor/vendor/b?
Локальную копию пакета я положил в папку .packages/vendor-b и хочу, чтобы композер брал версию именно из этой папки (предварительно я внёс правки и локально даже закомитил, допустим в ветку local-cache)
Если в composer.json добавить локальный репозиторий, то композер не хочет брать новую версию пакета
"repositories": [
{
"type": "path",
"url": ".packages/vendor-b",
"options": {
"symlink": true
}
}
],
Как ему об этом сказать?
Варианты с указанием в require вызываются конфликты версий. Если указать пакет в replace — композер его вовсе удаляет