首页 > 解决方案 > 在 composer.json 中更新 symfony/symfony 版本

问题描述

查看 Symfony 演示存储库,我发现很难准确辨别您将针对哪个包来更新symfony包。

看看这里:https ://github.com/symfony/demo/blob/master/composer.json

在我之前的项目中,有一个不同的symfony/symfony包,所以很清楚在哪里做。

现在,我的应用程序版本为 4.2.5。我尝试在下面更新 symfony 版本extrashttps://github.com/symfony/demo/blob/master/composer.json然后运行composer update symfony/symfony

结果:

$ composer update symfony/symfony
Package "symfony/symfony" listed for update is not installed. Ignoring.
Loading composer repositories with package information
Updating dependencies (including require-dev)
Restricting packages listed in "symfony/symfony" to "4.4.*"
Nothing to install or update

很明显,程序发生了变化,我确信某处有这方面的文档,但我一直找不到。

标签: phpsymfonycomposer-phpsymfony4

解决方案


如果没有看到您的 composer.json 文件,很难给您确切的说明。Symfony 既是一个框架又是一个组件的集合,所以我们需要看看你是如何安装的以及安装了什么。

例如,在我正在运行的特定项目中,这些是我更新到 4.4 的所有依赖项:

    "symfony/cache": "^4.4.0",
    "symfony/config": "^4.4.0",
    "symfony/console": "^4.4.0",
    "symfony/dependency-injection": "^4.4",
    "symfony/dotenv": "^4.4.0",
    "symfony/filesystem": "^4.4.0",
    "symfony/finder": "^4.4.0",
    "symfony/flex": "^1.2",
    "symfony/framework-bundle": "^4.4.0",
    "symfony/http-client": "^4.4.0",
    "symfony/http-client-contracts": "^2.0.0",
    "symfony/http-foundation": "^4.4.0",
    "symfony/http-kernel": "^4.4.0",
    "symfony/messenger": "^4.4.0",
    "symfony/monolog-bundle": "^3.4",
    "symfony/polyfill-mbstring": "^1.12.0",
    "symfony/profiler-pack": "^1.0",
    "symfony/routing": "4.4.0",

最重要的是,extra关键:

"extra": {
    "symfony": {
      "allow-contrib": true,
      "require": "4.4.*"
    }

最重要的可能是"symfony/framework-bundle",但您可能会有更多的东西。

在这种情况下,几乎所有依赖项都被显式声明,即使它们中的一些本来会作为另一个包的依赖项安装,但我们希望真正声明所有真正的依赖项。


推荐阅读