首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助克服PHP5.3设置的特定behat依赖项的不兼容性

需要帮助克服PHP5.3设置的特定behat依赖项的不兼容性
EN

Stack Overflow用户
提问于 2016-01-27 09:13:45
回答 2查看 105关注 0票数 2

我有一个特定的依赖项集的behat配置,它在PHP5.5中很好地工作。但后来,我不得不将配置转移到jenkins的服务器上。问题是服务器安装了PHP5.3,不可能进行更新。

尽管依赖项拒绝通过composer以正常方式安装,但我还是强制使用“--忽略-platform-reqs”参数来安装它们。

安装了依赖项之后,我遇到了另一个问题,我无法轻松地克服这个问题。它只是在试图执行"bin/behat“命令时显示一个错误:

代码语言:javascript
复制
 PHP Parse error:  syntax error, unexpected '[' in .../workspace/automated-tests/vendor/guzzlehttp/psr7/src/functions.php on line 77
PHP Stack trace:
PHP   1. {main}() .../workspace/automated-tests/vendor/behat/behat/bin/behat:0
PHP   2. includeIfExists() .../workspace/automated-tests/vendor/behat/behat/bin/behat:21
PHP   3. include() .../automated-tests/vendor/behat/behat/bin/behat:17
PHP   4. ComposerAutoloaderInit617eef80953ba1e8b93feeaeccb52bc0::getLoader() .../workspace/automated-tests/vendor/autoload.php:7
PHP   5. composerRequire617eef80953ba1e8b93feeaeccb52bc0() .../workspace/automated-tests/vendor/composer/autoload_real.php:49
PHP   6. require() .../workspace/automated-tests/vendor/composer/autoload_real.php:59
Parse error: syntax error, unexpected '[' in .../workspace/automated-tests/vendor/guzzlehttp/psr7/src/functions.php on line 77 Call Stack: 0.0006 645368 1. {main}() .../workspace/automated-tests/vendor/behat/behat/bin/behat:0 0.0008 645976 2. includeIfExists() .../workspace/automated-tests/vendor/behat/behat/bin/behat:21 0.0016 649328 3. include('.../workspace/automated-tests/vendor/autoload.php') .../workspace/automated-tests/vendor/behat/behat/bin/behat:17 0.0021 680968 4. ComposerAutoloaderInit617eef80953ba1e8b93feeaeccb52bc0::getLoader() .../workspace/automated-tests/vendor/autoload.php:7 0.0082 1106296 5. composerRequire617eef80953ba1e8b93feeaeccb52bc0() .../workspace/automated-tests/vendor/composer/autoload_real.php:49 0.0089 1109928 6. require('.../workspace/automated-tests/vendor/guzzlehttp/psr7/src/functions_include.php') .../automated-tests/vendor/composer/autoload_real.php:59

下面是composer.json中的依赖项列表:

代码语言:javascript
复制
{
  "require": {
    "behat/gherkin": "~4.4",
    "drupal/drupal-extension": "~3.1",
    "emuse/behat-html-formatter": "dev-master"
  },
  "require-dev": {
    "bossa/phpspec2-expect": "~1.0",
    "ocramius/proxy-manager": "~0.5",
    "phpunit/phpunit": "~4.5",
    "jakoch/phantomjs-installer": "1.9.8"
  },
  "autoload": {
    "psr-0": {
      "Behat\\Behat":    "src/",
      "Behat\\Testwork": "src/"
    }
  },
  "config": {
    "bin-dir": "bin/"
  }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-27 16:25:12

我找到了解决这个问题的办法。我已经将composer.json中的"require“块更改为:

代码语言:javascript
复制
{
  "require": {
    "drupal/drupal-extension": "*",
    "emuse/behat-html-formatter": "dev-master"
  },

注意,我已经去掉了“behat/gherkin”:“~4.4”,并将drupal/extension更改为"*“。因此,根据我的系统规范(所以PHP5.3兼容)下载最新和最稳定的版本以及它所需的所有依赖项(因此也包括behat 4)。

至少我是这么看的。如果我错了请纠正我。

票数 1
EN

Stack Overflow用户

发布于 2016-01-27 09:21:48

短数组语法[]是在PHP5.4中添加的,所以我想您是在共享服务器上运行一些旧版本的PHP。通常,用[]替换数组()会有帮助,但这里它是一个外部供应商包,因此不建议修改代码,因为在更新供应商包时,更改将被覆盖。除此之外,解决该问题的唯一方法是使用更新版本的PHP。

From this related question

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35033084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档