composer PHP要件をスキップ


117

PHPCIとcomposerを使用しています。PHPCIを実行するサーバーはPHP 5.3上にあります。

プロジェクトでは、composerを使用してFacebook PHP SDKを追加しました。PHP 5.4が必要です。ComposerはPHPCIによってトリガーされ、実行されます。しかし、CIサーバーはPHP 5.3 composerを取得したばかりなので、次のエラーメッセージで失敗しました。

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found.

もちろん、これによりPHPCIでのビルドが失敗します。

この要件をスキップする可能性はありますか?多分composer.jsonにオプションを追加することによって?またはcomposer.phar呼び出しのパラメーター?

回答:


284

私はオプションを見つけました:

composer install --ignore-platform-reqs

プラットフォーム要件を無視します(phpおよびext-パッケージ)。


編集:これでプラットフォームのチェックをスキップできますが、Composerは指定されたPHPバージョンに基づいてパッケージをフェッチします。したがって、依存関係の解決中にPHPバージョンもエミュレートするようにcomposerが必要な場合は、composer.jsonでこれを使用できます(使用する必要があります)。

{
    "config": {
       "platform": {
           "php": "5.6.6"
       }
    }
}

https://getcomposer.org/doc/06-config.md#platform


プライベートリポジトリを無視するにはどうすればよいですか。一部のパッケージにはプライベートリポジトリが必要です。
dungphanxuan 2017

驚くばかり。php cliがまだバージョンの変更を反映していない場合に便利です。
giovannipds

Composer 2には、使用できる新しいコマンドがあります。php.watch
Armin

3

多くのコマンドでは、パラメーター " --ignore-platform-reqs" を使用して、phpのバージョンチェックをバイパスするようにcomposerに指示できます。

composer COMMAND --ignore-platform-reqs

これは、phpのバージョン指定をバイパスします。

ソフトウェアが動作するかどうかに注意してください。コードのどこかに少なくとも指定されたphpバージョンが必要なため、phpバージョンの仕様があります。そのコードを使用すると、ソフトウェアが破損します。


--ignore-platform-reqsあなたの答えが意味するように、利用可能なすべてのコマンドのためではありません。
アーミン

-11

特定のバージョンのPHPを必要とするものがあれば、それより低いバージョンのPHPでは動作しません。PHPの要件を回避しても、おそらくエラーが表示されます。

ところで、PHP 5.3はもうメンテナンスされていません。PHPCIサーバーを更新することを強くお勧めします。


2
最初に、PHP要件を回避する方法を知りたいです。
Armin

できませんし、
PHPの

3
そうなる。CIサーバーだけが低PHPバージョンを取得しました。Facebook SDKを含むサーバーは、PHP 5.4で実行されます。これは、すべてを素敵なデプロイ可能なzipファイルにパックするciサーバーについてです。
Armin

PHP 5.3はコアPHP開発者によって保守されなくなっていますが、Linuxの一部のフレーバーはまだそれをサポートしており、しばらくの間は機能します。Ubuntu 12.04 LTSは5.3に同梱されており、2017年4月までサポートされています(wiki.ubuntu.com/LTS)。14.04への移行が最適なアップグレードパスですが、修正するために多くの作業を必要とする重大な変更があります(Apache 2.4、php-fpmなど)。したがって、インターネットの多くは、まだ5.3.xを使用しています。
Andrew McCombe 2015年

残念ながら、サポートされているパッケージでさえ、99%のパッケージには適切な要件がありません。これは、開発者が何を使用しているかを示すものです。
mschuett 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.