【问题标题】:Installation failed when trying to upgrade to a major version of Symfony尝试升级到 Symfony 的主要版本时安装失败
【发布时间】:2016-11-19 18:57:33
【问题描述】:

我有一个旧的 Symfony 项目,这里是 composer.json

{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
    "psr-0": {"": "src/"}
},
"require": {
    "php": ">=5.5.9",
    "symfony/symfony": "*",
    "symfony/console": ">=2.2.3",
    "doctrine/orm": "~2.2,>=2.2.3",
    "doctrine/doctrine-bundle": "~1.2",
    "twig/extensions": "~1.0",
    "symfony/assetic-bundle": "~2.3",
    "symfony/swiftmailer-bundle": "~2.3",
    "symfony/monolog-bundle": "~2.4",
    "sensio/distribution-bundle": "~2.3",
    "sensio/framework-extra-bundle": "~3.0",
    "sensio/generator-bundle": "~2.3",
    "incenteev/composer-parameter-handler": "~2.0",
    "facebook/php-sdk-v4" : "4.0.*",
    "symfony/finder": "^3.1",
    "sonata-project/core-bundle": "^3.1",
    "sonata-project/seo-bundle": "^2.0",
    "sonata-project/admin-bundle": "^3.6"
},
"scripts": {
    "post-install-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ]
},
"config": {
    "bin-dir": "bin"
},
"extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web",
    "incenteev-parameters": {
        "file": "app/config/parameters.yml"
    },
    "branch-alias": {
        "dev-master": "2.4-dev"
    }
} }

首先我会使用:

php composer.phar self-update

然后我使用以下命令进行升级:

php composer.phar update

结果如下:

 Search for a package: symfony

Found 15 packages matching symfony

   [0] symfony/symfony    [1] rgies/symfony    [2] php-tmdb/symfony    [3] webforge/symfony    [4] lexpress/symfony1    [5] symfony/symfony1  [6] sabaki-dev/symfony1    [7] behat/symfony2-extension    [8] escapestudios/symfony2-coding-standard    [9] smarkio/symfony1   [10] languara/symfony3   [11] m6web/symfony2-coding-standard   [12] irongit/symfony2-stream-response   [13] polishsymfonycommunity/symfony2-mocker-extension   [14] symfony/console

Enter package # to add, or the complete package name if it is not listed: 0
Enter the version constraint to require (or leave blank to use the latest version):
Using version ^3.1 for symfony/symfony
Search for a package: ./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Conclusion: don't install symfony/symfony v3.1.6
    - Conclusion: don't install symfony/symfony v3.1.5
    - Conclusion: don't install symfony/symfony v3.1.4
    - Conclusion: don't install symfony/symfony v3.1.3
    - Installation request for sensio/generator-bundle (locked at v2.5.3, required as ~2.3) -> satisfiable by sensio/generator-bundle[v2.5.3].
    - Conclusion: don't install symfony/symfony v3.1.2
    - Conclusion: don't install symfony/symfony v3.1.1
    - don't install symfony/finder v3.1.6|don't install symfony/symfony v3.1.0
    - don't install symfony/symfony v3.1.0|remove symfony/finder v3.1.6
    - don't install symfony/symfony v3.1.0|don't install symfony/finder v3.1.6
    - Installation request for symfony/symfony ^3.1 -> satisfiable by symfony/symfony[v3.1.0, v3.1.1, v3.1.2, v3.1.3, v3.1.4, v3.1.5, v3.1.6].
    - Installation request for symfony/finder (locked at v3.1.6, required as ^3.1) -> satisfiable by symfony/finder[v3.1.6], symfony/symfony[v3.1.6].


Installation failed, reverting ./composer.json to its original content.

【问题讨论】:

  • 开始一个新的 Symfony 项目以获得一个工作的 composer.json 然后使用 composer require 添加额外的包,比如 facebook sdk。用新的 composer.json 替换旧的 composer.json,重新安装,然后开始工作,尽管您将面临许多问题。除非你对 Symfony 有深入的了解,否则你最好分步升级:2.2 => 2.3 => 2.7 => 2.8 => 3.1 随着你的进展清除所有弃用通知。或者将你的旧应用一点一点复制到新应用中。
  • 谢谢,但这些对我来说很难,因为我是新手,但我想了解更多,有没有办法解决我遇到的所有错误?
  • 我想你可以雇人。否则,您基本上就不得不学习如何使用 Symfony 框架进行开发。
  • 不,我说我只是想升级这些项目。
  • 我想支持@Cerad 所说的话。 2.2 和 3.x 之间有很多变化,但你不会找到灵丹妙药。

标签: php symfony composer-php


【解决方案1】:

我用php composer.phar self-update 完成了,然后php composer.phar update 成功更改为symfony 2.8

【讨论】:

  • 很高兴你成功了!请务必检查您的应用是否存在弃用警告和错误。与2.2相比,2.8 中的某些服务已不存在,某些概念也大不相同
猜你喜欢
  • 2023-03-19
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
相关资源
最近更新 更多