У меня есть два приложения symfony4: предложение / управление и предложение / выборщик, и сейчас я хочу использовать предложение / управление в качестве основного проекта и предложение / выборщик в качестве локальной зависимости предложения / управления.Поэтому я создаю отдельные каталоги:
- предложение-управление с собственным composer.json
- предложение-сборщик с собственным composer.json
Вот композитор.json for offer / fetcher:
{
"name": "offer/fetcher",
"type": "project",
"version": "1.0.0",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"nelmio/api-doc-bundle": "^3.3",
"symfony/console": "*",
"symfony/flex": "^1.1",
"symfony/framework-bundle": "*",
"symfony/messenger": "*",
"symfony/monolog-bundle": "^3.3",
"symfony/orm-pack": "^1.0",
"symfony/yaml": "*"
},
"require-dev": {
"symfony/test-pack": "^1.0",
"symfony/web-server-bundle": "*"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"AppOffersFetcher\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"AppOffersFetcher\\Tests\\": "tests/"
}
},
"replace": {
"paragonie/random_compat": "*",
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd",
"security-checker security:check": "script"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "4.1.*"
}
}
}
, а вот composer.json для предложения / управления:
{
"name": "offer/management",
"type": "project",
"license": "proprietary",
"repositories": [
{
"type": "path",
"url": "../offer-fetcher"
}
],
"require": {
"offer/fetcher": "^1.0",
"php": "^7.1.3",
"ext-ctype": "*",
"ext-iconv": "*",
"nelmio/api-doc-bundle": "^3.3",
"symfony/console": "*",
"symfony/flex": "^1.1",
"symfony/framework-bundle": "*",
"symfony/messenger": "*",
"symfony/monolog-bundle": "^3.3",
"symfony/orm-pack": "^1.0",
"symfony/yaml": "*"
},
"require-dev": {
"symfony/test-pack": "^1.0",
"symfony/web-server-bundle": "*"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"OfferManagement\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"OfferManagement\\Tests\\": "tests/"
}
},
"replace": {
"paragonie/random_compat": "*",
"symfony/polyfill-ctype": "*",
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install %PUBLIC_DIR%": "symfony-cmd",
"security-checker security:check": "script"
},
"post-install-cmd": [
"@auto-scripts"
],
"post-update-cmd": [
"@auto-scripts"
]
},
"conflict": {
"symfony/symfony": "*"
},
"extra": {
"symfony": {
"allow-contrib": false,
"require": "4.1.*"
}
}
}
, и ошибка при запуске установки composer из управления предложениями::
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for offer/management dev-master -> satisfiable by offer/management[dev-master].
- don't install offer/fetcher 1.0.0|remove offer/management dev-master
- Installation request for offer/fetcher ^1.0 -> satisfiable by offer/fetcher[1.0.0].