(jp) =
<!–
–>

この投稿はもともと私のニュースレターに送信されました。
ここ数か月、PHP 8.1 について多くの記事を書いてきました。 リリースそのものだけでなく、PHP のバージョンを最新に保つことがいかに重要であるかについても説明します。
ただし、空の言葉を残したくないので、外部依存関係の更新に対処する方法に関する実用的なアドバイスを共有したいと思います。 なぜなら、それに直面しましょう、あなた 欲しいです プロジェクトを PHP 8.1 に更新しますが、依存関係の一部がそれをサポートしていません。 それで、話の終わりですよね?
このような場合に私が行うことは次のとおりです。
まず、私は 待たないで 私のコードのテストを開始するには、公式の PHP リリースが必要です。 これは、オープンソース プロジェクトだけでなく、クライアント プロジェクトやプライベート プロジェクトにも当てはまります。 PHP のリリース候補が到着したら、安全にテストを開始できます。 PHP のコアで 1 つまたは 2 つのバグを発見し、途中でそれらを支援することさえあるかもしれません。
次に、最新の PHP バージョンをまだサポートしていない外部依存関係に遭遇した場合は、試してみてください。 プルリクエストを送る 自分で修正します。 オープンソースのメンテナーは、多くの場合、あなたの貢献に非常に感謝しています。 未解決の問題、プル リクエスト、およびディスカッションを確認するのが最善かもしれませんが、既に取り組んでいる可能性があります。
もちろん、自分で PR を送信できるとは限りません。 コードベースを十分に理解していないか、時間がないかのどちらかです。 次のステップは メンテナーに手を差し伸べる、彼らがPHP XXサポートを提供できるかどうか、そしてあなたが何らかの形で助けることができるかどうかを丁寧に尋ねてください. 実際にできなくても コード プロジェクトでそれらの変更をテストし、早期にフィードバックを提供できる場合があります。
早く始めることの利点は、時間のプレッシャーがあまりないことです。 メンテナーは予想よりも少し時間がかかるかもしれないので、早期に開始することは有益です。
時間を早送りしましょう。 PHP 8.1 がリリースされましたが、依存関係の 1 つがまだ更新されていません。 メンテナが非アクティブであるように見えるか、合理的な時間内に解決できない障害があります。 代替案を探し始める. これが、最初に調査を行わずにプロジェクトに依存関係を取り込んではならない理由です。 誰が何人の人がそれを維持しているか、彼らの作業に資金が提供されているかどうか、リポジトリに最近のアクティビティがあるかどうか、未解決の問題や古い問題がいくつあるかを調べる必要があります。 プロジェクトをアップグレードしたいときにすぐに対処するのではなく、この種の調査を事前に行うことをお勧めします。
ただし、将来を予測することは不可能であるため、非アクティブなプロジェクトをいつの日か処理する必要があります。
代替の依存関係が見つからない場合、または合理的な時間内に実装できるものがない場合。 あなたが考えることができます パッケージのフォーク そしてそれをプロジェクトに取り込みます。 これは常に最後の手段である必要がありますが、その価値があるかもしれません。 ただし、そうすることでプロジェクトに大量の技術的負債が追加されることに注意してください。そのため、長所と短所を慎重に検討してください。 また、本当にやる気がない限り、公開フォークを維持しようとすることは避けてください。
現在、この戦略はクライアント プロジェクトでうまく機能しているようです。 しかし、それ自体が依存関係を持つオープン ソース プロジェクトについてはどうでしょうか? オープン ソース コードが他のコード (最新の PHP バージョンをサポートしていないコード) に依存していることが判明すると、状況は少し難しくなります。 最後の手段である fork は、数百または数千のプロジェクトがそのコードに依存している場合にはそれほど簡単ではありません。
あなたがオープン ソースのメンテナーであれば、依存関係を選択するルールは、オープン ソース コードにとってさらに重要であると言えます。 「公開」での分岐には、どうしても避けたい頭痛の種がたくさんあります。
それはまだ有効な戦略ですが、 いくつか 場合によっては、別の角度から見てみる価値があるかもしれません。
Laravel コミュニティで活動していることは、むしろ幸運だと思います。 オープン ソース コードに取り組むために従業員に賃金を支払う企業があります。 Laravel 自体が最良の例です。 と話しました ドリーズ この投稿の準備として、Laravel のメンテナーの 1 人です。 Laravelの観点から、外部依存関係を処理する上で最も難しいことについて彼に尋ねました。 彼は、それはほとんど待っているゲームだと言いました。 その上、すべてを機能させるために、彼らと外部のパッケージ メンテナーとの間で多くのコミュニケーションが行われます。
そのため、オープン ソースを使用している場合にできる最善のことは、依存しているパッケージを慎重に検討することです。 それらのメンテナと良好な関係を保ち、できる限り支援してください。 一方、あなたがオープンソースのユーザーである場合。 あなたまたはあなたの会社は、あなたが依存している人々をサポートすることを検討する必要があります。 彼らは信じられないほど重要な仕事をしています。 ほとんどの場合、無料です。
今日はここまでです。 疑問に思っていますが、最新の PHP バージョンを実行していますか? そうでない場合、何があなたを遠ざけていますか? 外部依存関係が問題ですか、それともサーバーの制約に対処している可能性がありますか? 多分それは時間や予算の問題、または何か他のものと関係がありますか? メールでお知らせいただくか、 ツイッター、 私は興味がある!
//platform.twitter.com/widgets.js