У меня есть структура каталогов:
composer.json < Main packages/ balunker/ testpackage/ composer.json < Package src/ TestPackage.php
Основной composer.json
выглядит так:
{ "name": "vagrant/composer-test", "repositories": [ { "type": "path", "url": "packages/*/*" } ], "require": { "balunker/testpackage": "*" } }
Пока пакет composer.json
выглядит так:
{ "name": "balunker/testpackage", "autoload": { "psr-4": { "Balunker\\": "src/" } } }
При composer update
я просто получаю сообщение о том, что пакет не может быть разрешен. Символьные ссылки не создаются и пакет не устанавливается. Я буквально потратил половину своего времени на то, чтобы понять это без каких-либо успехов.
Я также загрузил composer update -vvv
вывод из этого: http://pastebin.com/mMRHsACk .
Моя версия для композитора является последней (по состоянию на 20 апреля 2016 года в 14:39 UTC), и все это работает внутри Vagrant (Debian).
ЛЮБАЯ рекомендация отсюда очень ценится. Я действительно не знаю, что еще делать.
Я также опубликовал вопрос о Github, и оказалось, что документация немного вводит в заблуждение. В нем говорится:
{ "repositories": [ { "type": "path", "url": "../../packages/my-package" } ], "require": { "my/package": "*" } }
Однако, если у вас есть только локальное репо без релизов, вы должны использовать:
{ "repositories": [ { "type": "path", "url": "../../packages/my-package" } ], "require": { "my/package": "dev-master" } }
Версия dev-master
является ключом здесь (учитывая, что вы работаете над ведущей ветвью). Это было мягко бесит, но, благодаря некоторым полезным композиторам, я наконец смог схватить это.
Надеюсь, это может помочь кому-то в будущем.
Удачи!