У меня есть несколько библиотек [Foo and Bar], которые я разрабатываю в согласии, но все еще технически раздельные. Раньше я просто переопределял автозагрузчик, чтобы он понравился "Foo\\": "../Foo/src"
, но теперь, когда я добавил зависимость от Guzzle в Foo, Bar переворачивает его, потому что это не одна из его зависимостей.
Структура каталогов:
/home/user/src/
Foo/
src/
FooClient.php
composer.json
Bar/
src/
BarClient.php
composer.json
Теоретическое утверждение автозагрузки: [в Bar/composer.json]
"require": {
"local": "../Foo/composer.json"
}
Пример кода:
require('vendor/autoload.php');
$f = new \Bar\BarClient(new \Foo\FooClient());
Как я могу решить эту проблему без настройки локального репозитория Composer? Я хочу сохранить их в виде отдельных пакетов, только один требует другого, и для этого обрабатывает другие зависимости.
после ответа:
Благодаря инфоманке я сделал следующее:
Инициализировал репозиторий git:
cd ~/src/Foo && git init && echo -e "vendor\ncomposer.lock" > .gitignore && git add ./ && git commit -m "Initial Commit"
Добавлена конфигурация композитора:
"require": {
"sammitch/foo": "dev-master"
},
"repositories": [{
"type": "vcs",
"url": "/home/sammitch/src/Foo"
}],
И затем composer update
!