Итак, я недавно обновил свой проект symfony до версии 4.3, и, поскольку он вызывал проблемы, я снизил его до 4.2.9.Но, несмотря на мои усилия и различные опции composer, он продолжает устанавливать свои зависимости на 4.3 (twig, security, yaml ...), хотя его файл composer.json ясно показывает, что он должен использовать ту же версию.Я удалил vendor, очистил кеш, удалил composer.lock и symfony.lock, используя опцию --no-cache, специально установив версию symfony в composer точно на 4.2.9, но он всегда устанавливает 4.3, что немного разочаровывает.Если я извлекаю старый composer.lock и делаю установку, он работает, но обновление все равно установит 4.3, хотя я установил 4.2.9 в json для symfony.
Есть ли выход?Спасибо
Я использую
composer update --no-cache --dry-run
, чтобы увидеть, что мы устанавливаем без фактической установки
И это мой composer.json
{
"type": "project",
"license": "proprietary",
"require": {
"php": "^7.1.3",
"ext-iconv": "*",
"friendsofsymfony/jsrouting-bundle": "^2.3",
"sensio/framework-extra-bundle": "^5.1",
"symfony/console": "^4.0",
"symfony/flex": "^1.0",
"symfony/form": "^4.0",
"symfony/framework-bundle": "4.2.9",
"symfony/lts": "^4@dev",
"symfony/monolog-bundle": "^3.3",
"symfony/orm-pack": "^1.0",
"symfony/security-bundle": "^4.1",
"symfony/translation": "^4.0",
"symfony/twig-bundle": "^4.0",
"symfony/validator": "^4.0",
"symfony/webpack-encore-pack": "^1.0",
"symfony/yaml": "^4.0"
},
"require-dev": {
"doctrine/doctrine-fixtures-bundle": "^3.0",
"sensiolabs/security-checker": "^5.0",
"symfony/debug-bundle": "^4.1",
"symfony/dotenv": "^4.0",
"symfony/maker-bundle": "^1.9",
"symfony/profiler-pack": "^1.0",
"symfony/web-server-bundle": "^4.0"
},
"config": {
"preferred-install": {
"*": "dist"
},
"sort-packages": true
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"App\\Tests\\": "tests/"
}
},
"replace": {
"symfony/polyfill-iconv": "*",
"symfony/polyfill-php71": "*",
"symfony/polyfill-php70": "*",
"symfony/polyfill-php56": "*"
},
"scripts": {
"auto-scripts": {
"cache:clear": "symfony-cmd",
"assets:install --symlink --relative %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.2.9"
}
}
}
Примечание: я не говорю о зависимостях моего собственного composer.json, а о зависимостях, установленных Symfony, таких как http-foundation или http-kernel.