2017-09-28 2 views
1

私は問題のコンポーザインストールの依存関係があります。 バージョン5.6.24のphpを使用します。 phpunit 5.6.4をインストールするときに、php^7というdoctrine needsがインストールされます。これは、phpunitをインストールしてインストールした後の部分的なcomposer.lockです。phpunit 5.6.4は、作者によるdoctrineの依存関係のためにphp 5.6で動作しません。

"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に修正するのですか? 私が思ったように、PHP5のphpunit 5.6.4をhttps://packagist.org/packages/phpunit/phpunit#5.6.4として表示することができます。 (セバスチャン/エクスポータ1.2に応じてcakephp 2.10.3を使用していますので、5.6.4 phpunitバージョンでしか使用できません)

となりますので、以下のコマンドをライブラリにインストールします。

docker run --rm -it -v $(pwd):/app composer:1.4.1 require --dev phpunit/phpunit:"5.6.4" --ignore-platform-reqs --update-with-dependencies 
+0

は 'composer.lock'を削除し、' vendor'フォルダは、作曲家が再び – delboy1978uk

+0

delboy1978ukのあなたのコメントをありがとう、しかし.Actually変更なし@、私たちは、部分的にはPHPUnitを実行install' '実行してみたが、テストは時々エラー致命的な を発する失敗しますエラー:構文エラー、予期しない ':'、予期している ';' [/vendors/doctrine/instantiator/src/Doctrine/Instantiator/Instantiator.php、line 95]の '{'、または警告が表示されることがあります。 – tkowt

+0

コンポーザを実行しているマシンでphp7を使用できないことを確認してください。 –

答えて

0

この問題は教義バージョン(see http://doctrine-project.org/2017/07/25/php-7.1-requirement-and-composer.html)とのphpDocumentor /反射のdocblock互換性がないことにより、それが示すように引き起こされます。コマンドコンポーザーを使用する無効なバージョンを無効にすることができます

require (or --dev) package:$correct_version 

もちろん、ドッカー環境だけでなく、

コンパイラファイルは、^、〜演算子のような設定と一致する可能性があります。したがって、依存関係によって必要とされるようにライブラリがインストールされていると、互換性がなくなりました。ですから、composer.jsonで正しいバージョンが暗黙的に定義されている必要があります。 @ TonyChiboucasのコメントadd your own requirement definitionに感謝します。私の問題を解決する手がかりになります。

関連する問題