次のコラム WordPress チュートリアル では、WordPress のプラグイン、テーマ、PHP8 の互換性について紹介します。困っている友人のお役に立てれば幸いです。
WordPress プラグイン、テーマ、PHP 8 の互換性について
PHP8 は 2020 年 11 月 26 日にリリースされ、WordPress コアライター Jonathan De Jonathan Desrosiers が次の記事を公開しました。 WordPress に対する PHP8 の影響についてのブログ「Making WordPress Core」。この記事から、WordPress の現在のバージョンは、特に多数のテーマで、PHP8 で完全に動作することが保証されていないことが確認できます。また、プラグインの互換性はさえありません2020 年 12 月 8 日にリリースされる WordPress 5.6 は、PHP8 の移行バージョンにすぎないため、現時点では WordPress ウェブサイトで PHP8 を使用するためにアップグレードしようとしないでください。
おすすめ関連記事:「PHP8が正式リリース」
以下は機械翻訳です。
PHP 8 の紹介
PHP 8 は、お気に入りのスクリプト言語の次のメジャー アップデートです。以前の PHP バージョンは WordPress エコシステムに大きな悪影響を及ぼしませんでしたが、このアップデートには下位互換性に影響を与える可能性のある重大な変更がいくつか含まれています。 PHP 7.x で非推奨となった多くの機能が PHP 8 では削除されることにも注意してください。
WordPress コアの現状
Desrosiers 氏は投稿の中で、コア ソフトウェアを最新の状態に保つために行われている作業を強調しました。 「WordPress Core はバージョン 5.6 (現時点では 2020 年 12 月 8 日に予定) で PHP 8.0 との互換性を目指しています」と彼は書いています。
ただし、これは、WordPress 5.6 がリリースされたときに PHP 8 にアップグレードしても安全であるという意味ではありません。 WordPress が単独で実行されることはほとんどなく、通常はブログまたは Web サイトとして少なくとも 1 つのテーマとプラグインのコレクションに依存します。したがって、彼は次のように述べています。「より広範なエコシステム (プラグイン、テーマなど) における PHP 8 サポートの状況を知ることは不可能です。したがって、WordPress 5.6 は PHP 8 と「ベータ互換」であると考えるべきです。
これは本質的に、ほとんどの主要なテーマとプラグインが PHP 8 に準拠するまで、WordPress が完全に準拠しているとはみなせないことを意味します。
PHP 8 がプラグインやテーマにどのような影響を与えるかを理解する
Yoast のような企業は、しばらくの間、これに向けて準備を進めてきました。10 月下旬、Yoast CTO の Omar Reis は、ライター仲間の Juliette Linders-Folmer と話しました (Juliette Reinders Folmer、Yoast DevOps マネージャー、PHPCS 用の WordPress コーディング標準スニファーのメンテナである Erre Groen がまとめた)
時間を取ってレポート全体を読むことを強くお勧めしますが、PHP 8 のアップグレードでこのような問題が発生する主な理由の概要が説明されています。大規模な WordPress サイト、特にプラグインとテーマのエコシステムに多大な影響を及ぼします。
ただし、PHP 7.* バージョンでは、非推奨の量が以前のバージョンの PHP よりもはるかに多くなっています。PHP 5.6 から PHP 7 は、比較的単純な移行ですが、7.x から 8 への移行は、特に WordPress や利用可能な多数のプラグインのような非常に古いコード ベースの場合、非常に困難になる可能性があります。適切に型付けされたコードベースや、常に最新の PHP バージョンを維持しているコードベースの場合は、問題はありません。
一部のプラグインの管理者として、8 年前のコードに基づいて構築されているプラグインもありますが、このアップグレードにより Web サイトが停止する可能性があることが懸念されます。
準備方法
私は Reese と Fulmer に、プラグインとテーマの開発者ができること、準備するために何をすべきかを尋ねたところ、いくつかのヒントを共有してくれました。
まず、開発者は PHP 8 の変更点についてよく知る必要があります。 PHP 8 について投稿し、Yoast PHP8 互換性レポートを読み、PHP マニュアルのセクション「PHP 7.4 から PHP 8.0 への移行」を読み、場合によっては PHP 8 ブランチのアップグレード ドキュメントや PHP 8 の RFC を読んでさらに深く掘り下げてください。
非互換性を見つけるのに役立ついくつかの利用可能なツールを使用できます:
コマンドを使用して PHP8 で PHP フランジを実行します (すべてのファイルをループするようにしてください)、または PHP 並列 lint.php を使用します。 -l
コード上で PHP 互換の実行: PHP 8 関連のほぼすべての機能は、まだリリースされていないバージョンの PHP 互換バージョン 10.0.0 に含まれていることに注意してください。バージョン 10.0.0 がリリースされるまでは、フォークを使用するか Composer を使用する必要があります。 Developmentdev-develop
PHP 8 でプラグインまたはテーマの単体/統合テストを実行し、問題が発生した場合は修正します。これは通常、テスト スイートがまず PHPUnit 9.3 と互換性がある必要があることを意味します。 PHPUnit Polyfills パッケージと WP Test Utils パッケージ (どちらも Yoast GitHub 組織の下でリリースされています) がこれに役立ちます。このタイプのテストで信頼性の高いパフォーマンスを得るには、かなりのテスト範囲が必要であることに注意することも重要です。
WordPress 単体テストと WordPress e2e テストを実行し、プラグインを有効にして、発生した問題を修正します。
このテストの (厳密な) コード カバレッジが十分に高いかどうかを確認し、そうでない場合はテストを追加して、幸せなパスと不幸なパスの両方がカバーされていることを確認します。
テストがない場合は、「不快なパス」に特に注意してすべてを手動でテストし、当面はバグ レポートを受け取ることを期待してください。それまでの間、プラグインまたはテーマの単体テスト/統合テストの実装を検討することをお勧めします。
まだ時間はありますが、残り少なくなってきています
Desrosiers が「Made」投稿で指摘したように、WordPress は PHP8 の準備のみを正式にターゲットにしています5.6 が 12 月初旬にリリースされるとき。これは、多くの WordPress に重点を置いたホスティング会社が、WordPress コアに互換性が確保されて初めて顧客へのアップグレードの提供を検討することを意味している可能性があります。そのため、プラグインやテーマの開発者として、製品をテストして準備を整える時間はありますが、その期間は急速に閉まりつつあります。
幸いなことに、最新の知識とツールが世の中にあります。あとはそれらを実行に移すだけです。
以上がWordPress プラグイン、テーマ、PHP8 の互換性の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。