下面由WordPress教程欄目給大家介紹WordPress 插件、主題與PHP8的兼容性,希望對需要的朋友有所幫助!
關(guān)于WordPress 插件、主題與PHP 8的兼容性
PHP8 于2020年11月26日發(fā)布,WordPress核心撰稿人喬納森·德羅西耶斯(Jonathan Desrosiers)在《使WordPress核心》博客上發(fā)表了一篇關(guān)于PHP8對WordPress影響的文章,從文中可以確認Wordpress目前的版本,不能保證在PHP8中完美運行,特別是眾多的主題和插件兼容性更不可預(yù)知,即將于2020年12月8日發(fā)布的Wordpress 5.6也只是PHP8的過渡版本,所以目前不要嘗試在自己的WordPress網(wǎng)站上升級使用PHP8。
相關(guān)文章推薦:《PHP8正式發(fā)布了》
下面是機翻。
PHP 8 推出
PHP 8是我們最喜歡的腳本語言的下一個主要更新。雖然以前的 PHP 版本對 WordPress 生態(tài)系統(tǒng)沒有太大的負面影響,但此更新有一些重大更改可能會影響向后兼容性。還應(yīng)該注意的是,PHP 7.x 中棄用的許多功能現(xiàn)在將在 PHP 8 中刪除。
WordPress 核心的狀態(tài)
在他的帖子中,德羅西耶斯強調(diào)了為使核心軟件保持最新而進行的工作。"WordPress Core 的目標是在 5.6 版本中與 PHP 8.0 兼容(目前定于2020年12月8日),"他寫道。
但是,這并不意味著在 WordPress 5.6 發(fā)布時升級到 PHP 8 是安全的。WordPress 很少只運行自己,通常依賴于至少一個主題和插件集合作為博客或網(wǎng)站。因此,他指出,"PHP 8 在更廣泛的生態(tài)系統(tǒng)(插件、主題等)中支持的狀態(tài)是不可能知道的。因此,WordPress 5.6 應(yīng)被視為與 PHP 8 的"測試版兼容"。
這意味著,本質(zhì)上,在大多數(shù)主要的主題和插件是PHP 8兼容之前,WordPress不能被認為是完全兼容的。
了解 PHP 8 如何影響您的插件或主題
像Yoast這樣的公司已經(jīng)為此準備了一段時間了。10月下旬,Yoast CTO Omar Reis與同行的撰稿人朱麗葉·林德斯·福爾默(Juliette Reinders Folmer)一起,為PHPCS編寫了WordPress編碼標準嗅探器的維護者,Yoast DevOps經(jīng)理ErreGroen,編制并發(fā)表了一份全面的WordPress/PHP 8兼容性報告。
雖然我強烈建議你花時間通讀整個報告,但它確實概述了PHP 8升級對大型WordPress網(wǎng)站,尤其是插件和主題生態(tài)系統(tǒng)產(chǎn)生如此巨大影響的主要原因。
但是,PHP 7.* 版本看到的棄用量比以前版本的 PHP 大得多。PHP 5.6 到 PHP 7 是一個相對簡單的遷移,從 7.x 到 8 可能會非常痛苦,尤其是對于非常古老的代碼庫,如 WordPress 和許多可用的插件。對于類型良好的代碼庫或代碼庫,它們一直保持最新的 PHP 版本,因此沒有問題。
作為一些插件的維護者,一些插件建立在八年前的代碼之上,令人擔憂的是,這種升級可能會導(dǎo)致網(wǎng)站中斷。
如何做好準備
我問里斯和福爾默插件和主題開發(fā)人員可以做什么來準備, 他們分享了一些指針。
首先,開發(fā)人員應(yīng)該告知自己 PHP 8 中的變化:閱讀有關(guān)PHP 8的 Make 帖子,閱讀Yoast PHP8 兼容性報告,閱讀PHP 手冊中的"從 PHP 7.4 遷移到 PHP 8.0"部分,并可能通過閱讀PHP 8分支中的升級文檔和 PHP 8 的RFC來更深入地挖掘。
一些可用的工具可用于幫助查找不兼容:
-
通過命令(確保遍數(shù)所有文件)或使用PHP并行林特在PHP8上運行PHP絨板。php -l
-
在代碼上運行 PHP兼容:應(yīng)該注意,幾乎所有 PHP 8 相關(guān)嗅覺都位于 PHP 兼容版本 10.0.0 的尚未發(fā)布版本中,因此人們需要使用分支或通過 Composer 進行當前操作,直到版本 10.0.0 發(fā)布。developdev-develop
-
在 PHP 8 上為插件或主題運行單元/集成測試,并修復(fù)任何出現(xiàn)錯誤的問題。這通常意味著測試套件首先需要與 PHPUnit 9.3+ 兼容。PHPUnit Polyfills 包和WP 測試 Utils包(都在 Yoast GitHub 組織下發(fā)布)可以幫助實現(xiàn)此目的。同樣重要的是要注意,要使這種測試具有可靠的性能,需要有相當大的測試覆蓋率。
-
運行 WordPress單元測試和WordPress e2e測試,激活插件,并修復(fù)出現(xiàn)的任何問題。
-
檢查該測試的(嚴格)代碼覆蓋率是否足夠高,如果沒有,請?zhí)砑?/p>