【问题标题】:Symfony2, composer, your PHP version (5.6.18) overriden by "config.platform.php" version (5.3.9) does not satisfy requirementSymfony2,作曲家,您的 PHP 版本(5.6.18)被“config.platform.php”版本(5.3.9)覆盖不满足要求
【发布时间】:2016-02-21 15:38:28
【问题描述】:

我正在尝试将教义安装到我的项目中。我收到有关错误 PHP 版本的错误。可以做些什么来消除此错误的真正原因?克服它的方法是使用选项“--ignore-platform-reqs”,如https://getcomposer.org/doc/03-cli.md#require 所述。

PHP 版本:PHP 5.6.18

PHP 5.6.18  (cli) (built: Feb  3 2016 17:20:21)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

错误:c..>作曲家需要学说/数据夹具

Using version ^1.1 for doctrine/data-fixtures
./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
    - doctrine/migrations v1.3.0 requires php ^5.5|^7.0 -> your PHP version (5.6
.18) overriden by "config.platform.php" version (5.3.9) does not satisfy that re
quirement.
    - doctrine/migrations v1.2.2 requires php >=5.4.0 -> your PHP version (5.6.1
8) overriden by "config.platform.php" version (5.3.9) does not satisfy that requ
irement.
    - doctrine/migrations v1.2.1 requires php >=5.4.0 -> your PHP version (5.6.1
8) overriden by "config.platform.php" version (5.3.9) does not satisfy that requ
irement.
    - doctrine/migrations v1.2.0 requires php >=5.4.0 -> your PHP version (5.6.1
8) overriden by "config.platform.php" version (5.3.9) does not satisfy that requ
irement.
    - doctrine/migrations v1.1.0 requires php >=5.4.0 -> your PHP version (5.6.1
8) overriden by "config.platform.php" version (5.3.9) does not satisfy that requ
irement.
    - doctrine/migrations v1.0.0 requires php >=5.4.0 -> your PHP version (5.6.1
8) overriden by "config.platform.php" version (5.3.9) does not satisfy that requ
irement.
    - Installation request for doctrine/migrations ~1.0 -> satisfiable by doctri
ne/migrations[v1.0.0, v1.1.0, v1.2.0, v1.2.1, v1.2.2, v1.3.0].


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

composer.json的内容

"require": {
    "php": ">=5.3.9",
    "symfony/symfony": "2.8.*",
    "doctrine/orm": "^2.4.8",
    "doctrine/doctrine-bundle": "~1.4",
    "doctrine/data-fixtures" : "~1.1",
    "doctrine/doctrine-fixtures-bundle": "dev-master",

【问题讨论】:

标签: php symfony doctrine-orm composer-php


【解决方案1】:

在你的composer.json 中的某个地方

"config": {
   "preferred-install": "dist",
   "platform": {
       "php": "5.3.9"
   }
}

该块会覆盖您当前的 PHP 版本,如 composer doc 中所述。

【讨论】:

    【解决方案2】:

    在您的 composer.json 中,删除以下行:

    // ...
    "config": {
        "platform": {
            "php": "5.3.9"
        }
    },
    // ...
    

    platform config in composer

    【讨论】:

      【解决方案3】:

      我在 Symfony 2.7 中使用学说迁移

      在我的 composer.json 我有,我注意到你没有,你可以尝试添加它

      "doctrine/doctrine-migrations-bundle": "^1.0"
      

      我按照 Symfony2 文档手动安装了迁移,您可以阅读它here

      这是我的整个 2.7 Symfony 作曲家:

      "require": {
          "php": ">=5.3.9",
          "symfony/symfony": "2.7.*",
          "doctrine/orm": "~2.2,>=2.2.3,<2.5",
          "doctrine/dbal": "<2.5",
          "doctrine/doctrine-bundle": "~1.4",
          "symfony/assetic-bundle": "~2.3",
          "symfony/swiftmailer-bundle": "~2.3",
          "symfony/monolog-bundle": "~2.4",
          "sensio/distribution-bundle": "~4.0",
          "sensio/framework-extra-bundle": "~3.0,>=3.0.2",
          "incenteev/composer-parameter-handler": "~2.0",
          "friendsofsymfony/user-bundle": "1.3.*@dev",
          "ircmaxell/password-compat": "^1.0",
      
          "sonata-project/block-bundle": "2.3.*@dev",
          "sonata-project/easy-extends-bundle": "^2.1",
          "sonata-project/datagrid-bundle": "~2.2@dev",
          "sonata-project/admin-bundle": "~2.3@dev",
          "sonata-project/doctrine-orm-admin-bundle": "~2.3@dev",
          "sonata-project/user-bundle": "~2.3@dev",
          "doctrine/doctrine-migrations-bundle": "^1.0"
      
      },
      

      【讨论】:

      • 与composer.json中的“config”部分有关
      【解决方案4】:

      我刚刚遇到了同样的问题(在执行“composer install”时)。

      但是更改配置不是一个选项(因为 office 的 repo 冲突),所以我想出了以下解决方案。

      全局配置文件(或忽略PHP版本)

      建议只伪造和/或配置 “~/.composer/config.json”文件(或 Windows 的“%AppData%/Composer/config.json”文件)中的 PHP 版本,如:

      {
          "config": {
              "platform":{
                  "php":"5.5"
              }
          }
      }
      

      哪个作曲家可以缓存在composer.lock文件中,比如:

      {
      
         ...
      
         "platform-overrides": {
             "php": "5.5"
         }
      }
      

      但我们也可以忽略它,例如:

      composer install --ignore-platform-reqs
      

      【讨论】:

      • 请不要重复现有的答案。而是对您认为最有帮助的内容之一投赞成票
      • ¯\_(ツ)_/¯ @NicoHaase 这些答案是关于composer.json 文件,这是关于全球config.json (有没有其他解释,请仔细阅读)
      猜你喜欢
      • 2022-08-10
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 2020-02-12
      • 2016-12-29
      • 1970-01-01
      • 2021-05-27
      相关资源
      最近更新 更多