web-dev-qa-db-ja.com

提案されたcomposerパッケージをインタラクティブにインストールする方法はありますか?

私のcomposerパッケージのユーザーに、推奨パッケージのいずれかを選択してインストールするためのインターフェイスを提供したいと思います。コマンドラインオプションがないようです。APIでは、提案されたパッケージを一覧表示する getSuggests() メソッドしか見つかりません。

提案されたパッケージを選択する選択肢をユーザーに提供する方法はありますか(ネイティブまたはサードパーティのインストーラーを使用)?

12

私の知る限り、一般的なcomposer機能でこれを達成する方法はありません。

post-package-installで実行する独自のスクリプトを作成できます。ただし、スクリプトは、ルートパッケージのcomposer.jsonで定義されている場合にのみ実行されます(スクリプトの使用方法の詳細 ここを参照 )。依存関係で定義されたスクリプトは、セキュリティ上の懸念から実行されません(これについては、少し前に githubでの議論 がありました)。

しかし、おそらく作曲家プラグインはあなたのニーズに合っています。プラグインは、コンポーザーの機能を拡張するために使用されます(プラグインの詳細 ここを参照 )。

簡単な代替方法として、次のような提案されたパッケージメッセージを定義することをお勧めします。If you need XY functionality run: php composer.phar require vendor/package:2.*そして、ユーザーはこのコマンドを使用してインストールできます。あなたが要求したほど快適ではありませんが、それでもほとんどのユーザーにとって十分に簡単だと思います。

5
Pᴇʜ
composer suggests | xargs -i composer require {}
21
Rolan

試してみてください

composer suggests

フラグ-vを追加して、詳細にします。

これは何もインストールしません、それはただすべての提案をリストするでしょう。ただし、それをcomposer requireにパイプして、目的の出力を取得することができます。

composer suggests | xargs -L 1 composer require

Windows gitbashから動作するはずです。

6
Nasaralla

これは私のためにそれをしました:)

composer suggests | xargs -I '{}' composer require '{}'

それが役立つことを願っています:)