php - コンポーザーコマンドを実行するときに「ファンディング」メッセージを非表示にする方法はありますか?

okwaves2024-01-25  8

Composer を使用している場合、インストールまたは更新後にメッセージが表示されることがあります。

X packages you are using are looking for funding.
Use the `composer fund` command to find out more!

npm ではこの回答と同様の、Composer でも解決策があるかどうか知りたいです。

資金が必要なプロジェクトに関するメッセージを非表示にする方法はありますか? Composer --help の出力をチェックしましたが、明らかなフラグは見つかりませんでした。



------------------------

これら 2 行をターゲットとする特定のフラグはありません。

いつでも --quiet を使用してすべての出力を削除し、完全にサイレントで実行できます。

何らかの理由でこれらの 2 行が特に気になるが、残りの行は失いたくない場合出力では、いつでも grep を介して stderr をパイプし、これらの行を除外できます。

 composer update 2> >(grep -v "composer fund" | grep -v "looking for funding")

その結果:

上のスクリーンショットでは、資金調達への言及が著しく欠如していることに注目してください。

これを行う価値があるかどうかは、あなたにお任せします。

2

「結合」することができます。 -e:composer update 2> を使用して複数のパターンを指定することで、2 つの grep コマンドを 1 つにまとめます。 >(grep -v -e "作曲家基金" -e "資金を探しています").

– CDuv

2022 年 1 月 5 日 23:31

私にとっては、次のように動作します。composer update 2>&1 >/dev/null | grep -v -e "詳細を確認するには、「composer Fund」コマンドを使用してください!" -e "資金を探しています"

– シャカラン

2023 年 3 月 10 日 13:25



------------------------

スパム!あなたの端末で!さらに悪いことに、「善良な人々」が彼らを攻撃すると、やってみろ!

しかし、これはオープンソースなので、修正しましょう。

このためには、Composer がすでにインストールされている必要があります (Compo が必要です)このように Composer をコンパイルするには ser)。

jq も必要です。

全員で:

sudo apt install jq
cd "$(mktemp -d)"
ver=$(curl -s 'https://getcomposer.org/versions' | jq -r '.stable[0].version')
git clone https://github.com/composer/composer.git .
git checkout ${ver}
unset ver
sed -Ei 's/^(\s+if\s?\()$fundingCount(\) \{)$/FALSE/g' ./src/Composer/Installer.php
composer install
composer compile
composer_location=$(which composer)
if [[ -f "${composer_location}" ]]; then
  \cp -f composer.phar "${composer_location}"
  chmod u+x "${composer_location}"
fi
unset composer_location

別途:

jq をインストールします:

sudo apt install jq

一時フォルダーを作成し、ディレクトリをそこに変更します。

cd "$(mktemp -d)"

最新の安定した Composer のバージョン番号を取得し、ver 変数に保存します。

ver=$(curl -s 'https://getcomposer.org/versions' | jq -r '.stable[0].version')

この一時ディレクトリに Composer git リポジトリのクローンを作成し、Composer の最新の安定バージョンでコードをチェックアウトします。

git clone https://github.com/composer/composer.git .
git checkout ${ver}

後はクリーンアップして、再度使用する予定のない ver 変数の設定を解除します。

unset ver

src/Composer/Installer.php の if ($fundingCount) { を if (FALSE) { に置き換えます。

sed -Ei 's/^(\s+if\s?\()$fundingCount(\) \{)$/FALSE/g' ./src/Composer/Installer.php

Composer をコンパイルするための依存関係を取得します。ただし、Composer を使用します (そのため、最初に Composer をインストールする必要があります)。つまり、このマニュアルを実行できますそうだね、でも一体、なぜだろう。

composer install

この変更された現在のコードベースを使用して、新しいcomposer.pharを作成します。

composer compile

Composer バイナリの現在の場所を変数に保存します。

composer_location=$(which composer)

composer コマンドにエイリアスを付けた場合に備えて、その場合はファイル名の場所が保存されません。ファイルかどうかを確認してから、新しいファイルに置き換えて、次のコマンドで新しいファイルを実行可能にします。ユーザーであるあなた。

if [[ -f "${composer_location}" ]]; then
  \cp -f composer.phar "${composer_location}"
  chmod u+x "${composer_location}"
fi

CP の前のバックスラッシュもエイリアス バスターです。多くの場合、人々は cp を cp -i にエイリアスしますが、私たちはこれが今すぐ機能することだけを望んでいます。

最後に、composer_location 変数の設定を解除して、適切な状態にします。

その sed 行の正規表現に従っている場合は問題ありませんが、そうでない場合は、その行をスキップして変更を手動で適用して、何が起こっているかを把握することをお勧めします。自分のデバイス、vim src/Composer/Installer.php の場合、 if ($fundingCount) { を if (FALSE) { に置き換えます。

もちろん、これは、composer の署名されていないコピーを実行していることを意味します (変更は独自のものです)。しかし、彼らはすでにあなたの信頼を裏切ったので、その「信頼」を誰が気にするでしょうか。チェーン。

また、composer の自己更新を実行すると、Composer がパッチの適用されていないものに再び置き換えられるため、これらの手順を再度実行する必要があります。彼らはあなたの信頼を裏切ったので (またそうです)、とにかくこのように手動で更新するのが最善です (これらの手順をもう一度実行するだけで、あなたも更新できます)。私は、会社のすべての開発者のデスクトップ用に Ansible にそれを入れました。

3

1

「背任」として資金提供を求めることは考えません。

– mbomb007

2021 年 12 月 16 日 20:43

1

たとえ善良な人からのものであっても、一方的なリクエストはスパムとみなされます。私の端末ではそれは信頼違反であると考えられます。 Canonical や Microsoft が自社の OS に商用オファーをスパム送信しているのと同じです。

– ライアンバーガー

2021 年 12 月 17 日 12:16

1

マイクロソフトは多額の資金を持っています。オープンソースのメンテナーはボランティアとして参加しています。

– mbomb007

2021 年 12 月 22 日 15:04

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。