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