為PHP 8準備好WordPress插件和主題

周一,WordPress核心貢獻者Jonathan Desrosiers發布了 詳細的帖子 在Make WordPress Core博客上,了解即將發布的PHP 8版本及其對WordPress的影響。

PHP 8即將到來

預定於 2020年11月26日,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很少單獨運行,通常至少依賴一個主題和一組插件來充當博客或網站。 因此,他指出:「無法知道更廣泛的生態系統(插件,主題等)對PHP 8的支持狀態。 因此,應將WordPress 5.6與PHP 8「測試版兼容」。」

從本質上講,這意味著,直到大多數主要主題和插件都與PHP 8兼容,WordPress才被視為完全兼容。

了解PHP 8如何影響您的插件或主題

像Yoast這樣的公司已經為此準備了一段時間。 10月下旬,Yoast首席技術官Omar Reiss和其他貢獻者Juliette Reinders Folmer(維護者) WordPress編碼標準對PHPCS的嗅探以及Yoast DevOps經理Herre Groen編寫並發布了 全面的WordPress / PHP 8兼容性報告

我強烈建議您花時間閱讀整個報告,但它確實概述了PHP 8升級可能對大型WordPress網站(尤其是插件和主題生態系統)產生如此巨大影響的主要原因。

「但是,PHP 7. *版本的棄用範圍比以前版本的PHP大得多。 從PHP 5.6到PHP 7是一個相對簡單的遷移,從7.x到8的遷移可能會非常痛苦,尤其是對於非常老的代碼庫,例如WordPress和許多可用的插件。 對於類型良好的代碼庫或最新的PHP版本保持最新的代碼庫,這沒有什麼大問題。」

作為一些插件的維護者,其中一些插件的代碼可追溯到八年前,令人擔憂的是,此升級可能會導致網站崩潰。

為您的wordpress插件和主題準備適用於php-8為WordPress 8準備好WordPress插件和主題PHP兼容性庫。如何做好自我準備

我問Reiss和Folmer,插件和主題開發人員可以做些什麼來做準備,他們共享了一些建議。

首先,開發人員應告知自己有關PHP 8的更改:閱讀 關於PHP 8的Make post, 閱讀 Yoast PHP8兼容性 報告,請閱讀「從PHP 7.4遷移到PHP 8.0」部分,並通過閱讀 在PHP 8分支中升級文檔適用於PHP 8的RFC

可以使用一些可用的工具來幫助查找不兼容性:

  • 通過php -l命令(確保遍歷所有文件)或通過使用 PHP平行皮棉
  • PHP兼容性 關於它們的代碼:應該注意的是,幾乎所有與PHP 8相關的嗅探都在PHPCompatibility的10.0.0版本中,所以人們需要使用developer分支或通過Composer dev-暫時進行開發,直到發布10.0.0版為止。 同樣重要的是,要使此方法可靠,需要相當大的測試範圍。
  • 對PHP 8上的插件或主題運行單元/集成測試,並修復所有出現的錯誤。 這通常意味著首先需要使測試套件與PHPUnit 9.3+兼容。 的 PHPUnit Polyfills 包裝和 WP測試實用程序 軟體包(均在Yoast GitHub組織下發布)可以幫助解決此問題。
  • 運行WordPress 單元測試 和WordPress 端到端測試 激活您的插件,並修復出現的所有問題。
  • 檢查所述測試的(嚴格)代碼覆蓋率是否足夠高,如果不夠,請添加更多測試,確保覆蓋了滿意和不滿意的路徑。
  • 如果沒有測試,請手動測試所有內容,尤其是關注「不愉快的道路」,並期望在可預見的將來收到錯誤報告。 同時,這可能是研究為您的插件或主題實施單元/集成測試的好時機。

仍然有時間,但時間已經耗盡

正如Desrosiers在Make帖子中指出的那樣,WordPress僅在12月初發布5.6時正式目標是準備好PHP 8。 潛在地,這意味著一旦WordPress核心兼容,許多專註於WordPress的託管公司將僅考慮向其客戶提供升級。 因此,作為插件和主題開發人員,我們有一些時間來測試我們的產品並將其準備就緒,但是該窗口正在迅速關閉。

對我們來說幸運的是,掌握了最新的知識和工具。 我們只需要將它們付諸行動。

像這樣:

喜歡載入中……

資源

相關文章