Я одновременно разрабатываю два пакета composer: общий пакет, который будет использоваться в других разрабатываемых мною пакетах, и специальный пакет для конкретной цели, для работы которого требуется общий пакет.
На данный момент,мой каталог выглядит так:
projects
|- general-package
| |- composer.json
| |- "other files"
|
|- specific-package
| |- composer.json
| |- "other files"
|
|- testing-directory
|- composer.json
|- "other files"
Вот 3 composer.json
файлов:
general-package / composer.json
{
"name": "vendor/general-package",
"require": {
"php": ">=7.0.0"
}
}
specific-package /composer.json
{
"name": "vendor/specific-package",
"require": {
"php": ">=7.0.0",
"vendor/general-package": "^1.0"
}
}
testing-directory / composer.json
{
"config": {
"preferred-install": "source"
},
"repositories": [{
"type": "path",
"url": "../specific-package",
"options": {
"symlink": true
}
},
{
"type": "path",
"url": "../general-package",
"options": {
"symlink": true
}
},
],
"require": {
"php": ">=5.3.7",
"vendor/specific-package": "@dev",
"vendor/general-package": "@dev"
}
}
При запуске composer update
в каталоге тестирования пакет vendor/specific-package
извлекается из локального источника, но vendor/general-package
извлекается с packagist.org.
Как я могу заставить vendor/general-package
быть выбранным локально?