【发布时间】:2018-03-10 06:07:41
【问题描述】:
我在作曲家安装依赖项时遇到问题。 我们使用版本 5.6.24 的 php。 安装phpunit 5.6.4时,我们安装学说需要php^7。这是我们在 require 并安装 phpunit 之后的部分 composer.lock。
"packages-dev": [
{
"name": "doctrine/instantiator",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"shasum": ""
},
"require": {
"php": "^7.1"
},
它为什么会导致以及我们如何修复从 php 7 到 5 的这种依赖关系? 正如我所想,可以在 php 5 中使用 phpunit 5.6.4 作为https://packagist.org/packages/phpunit/phpunit#5.6.4 show。 (我们使用 cakephp 2.10.3 取决于 sebastian/exporter 1.2。所以我们只能在 5.6.4 phpunit 版本下使用。)
我们使用 docker ,所以我们按照命令安装库。
docker run --rm -it -v $(pwd):/app composer:1.4.1 require --dev phpunit/phpunit:"5.6.4" --ignore-platform-reqs --update-with-dependencies
【问题讨论】:
-
删除
composer.lock和vendor文件夹然后尝试再次运行composer install -
@delboy1978uk 感谢您的评论,但没有任何更改。实际上,我们运行 phpunit 部分但测试有时会失败,发出错误致命错误错误:语法错误,意外 ':',期待 ';'或 [/vendors/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php, 第 95 行] 中的 '{' 或可能的警告。
-
确保在运行 composer 的机器上没有 php7 可用。
-
@TonyChiboucas 也许是的,因为我们使用官方存储库中的 docker image composer:1.4.1 使用 php 版本 5.6.24。而且我注意到教义/实例化器不包括 phpunit 5.6.4 packagist.org/packages/phpunit/phpunit#5.6.4 的依赖项,并且删除它然后我的所有测试套件都通过了。尽管事实如此,我不知道为什么要安装它。所以,我想知道如何无法安装不依赖的包。这里有人可以帮忙吗?
-
@tkowt,何不简单地将您自己的
doctrine/instantiator需求定义添加到您的 composer.json 中?
标签: php cakephp doctrine phpunit