我正在创建自己的slackbot.我决定使用project作为库来帮助我.
https://github.com/sagebind/slack-client/issues?utf8=%E2%9C%93&q=stability
现在我需要用composer安装它.
所以我使用了命令: composer require coderstephen/slack-client
......我得到错误:
 Problem 1
    - Installation request for coderstephen/slack-client ^0.3.0 -> satisfiable by coderstephen/slack-client[v0.3.0].
    - coderstephen/slack-client v0.3.0 requires devristo/phpws dev-master -> satisfiable by devristo/phpws[dev-master] but these conflict with your requirements or minimum-stability.
好的 - 那么我决定将我的稳定性级别更改为"dev" composer.lock:
"aliases": [],
    "minimum-stability": "dev",
    "stability-flags": {
        "devristo/phpws": 20
    },
    "prefer-stable": true,
    "prefer-lowest": false,
    "platform": {
        "php": ">=5.5"
    },
    "platform-dev": []
现在我的想法已经不多了.README说在composer.json中执行此步骤但是,不存在这样的设置:
请注意,当前版本具有不稳定的依赖项.
为了安装这些依赖项,您可以在composer.json中设置"minimum-stability",并建议您设置"prefer-stable":
我的composer.json:
{
    "name": "coderstephen/slack-client",
    "keywords": ["slack", "api", "realtime"],
    "license": "MIT",
    "description": "A better Slack client, with RTM API support",
    "authors": [{
        "name": "Stephen Coakley",
        "email": "me@stephencoakley.com"
    }],
    "require": {
        "php": ">=5.5",
        "devristo/phpws": "dev-master",
        "evenement/evenement": "2.0.*",
        "guzzlehttp/guzzle": "~6.0",
        "react/event-loop": "^0.4.1",
        "react/promise": "^2.2"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.6",
        "fzaninotto/faker": "~1.4",
        "apigen/apigen": "^4.1"
    },
    "autoload": {
        "psr-4": {
            "Slack\\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Slack\\Tests\\": "tests"
        }
    }
}
有谁知道我可以尝试的一些解决方案?
Jir*_*dil 54
添加minimum-stability和prefer-stable您composer.json(不composer.lock):
{
    "name": "coderstephen/slack-client",
    "keywords": ["slack", "api", "realtime"],
    "license": "MIT",
    "description": "A better Slack client, with RTM API support",
    "authors": [{
        "name": "Stephen Coakley",
        "email": "me@stephencoakley.com"
    }],
    "require": {
        "php": ">=5.5",
        "devristo/phpws": "dev-master",
        "evenement/evenement": "2.0.*",
        "guzzlehttp/guzzle": "~6.0",
        "react/event-loop": "^0.4.1",
        "react/promise": "^2.2"
    },
    "require-dev": {
        "phpunit/phpunit": "~4.6",
        "fzaninotto/faker": "~1.4",
        "apigen/apigen": "^4.1"
    },
    "autoload": {
        "psr-4": {
            "Slack\\": "src"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Slack\\Tests\\": "tests"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}
小智 11
对于具有相同问题的其他人,最好使用composer本身完成这些更改,而不是手动修改composer.json文件。只需在控制台中运行以下命令:
$ composer config minimum-stability dev
$ composer config prefer-stable true
现在,您可以要求并更新软件包:
$ composer require --no-update "vendor/package-name:version"
$ composer update
可用选项(按稳定性顺序)是dev,alpha,beta,RC和稳定版
您永远不应该手动编辑composer.lock文件 - 它是一个自动生成的文件.
看起来你已经展示了你想要的包的composer.json文件而不是你自己的项目的composer.json.在prefer-stable和minimum-stability属性应该被添加到您的项目根的composer.json文件:
{
  "name": "xFlare/slack-bot",
  "description": "xFlare's Slack bot project",
  "authors": [
    {
      "name": "xFlare"
    }
  ],
  "minimum-stability": "dev",
  "prefer-stable": true,
  "require": {
    "php": ">=5.5",
    "coderstephen/slack-client": "^0.3.0"
  }
}
通常,此问题与最小稳定性或首选稳定选项没有直接关系,但情况只是您已经直接或间接使用了某个库,而您使用的另一个库需要更高版本的库。
我的情况:我安装了 Codeception ,之前我直接使用 PHPUnit 版本 4,但 Codeception 内部依赖于 PHPUnit 版本 6(及更高版本)。所以我必须明确地将我使用的 PHPUnit 版本从 4 增加到 6 ,以便库 Codeception 可以使用它(我的具体情况不能使用比版本 6 更高的 PHPUnit,因为它是支持我使用的 php 版本的最后一个版本)。
您可能会问它是否会影响您的项目,该项目已经依赖于较低版本的库,也许可能会有一些重大更改,但我不知道是否有一些解决方法可以将一个版本用于依赖项和另一个版本为自己的项目。
编辑:我还必须为 phpunit 发出 remove composer 命令,否则我无法直接增加我的 phpunit 版本。