當(dāng)前位置:首頁(yè)>WordPress資訊>開(kāi)發(fā)者應(yīng)該了解的 WordPress 5.5 對(duì)PHP相關(guān)的更改

開(kāi)發(fā)者應(yīng)該了解的 WordPress 5.5 對(duì)PHP相關(guān)的更改

WordPress 5.5 對(duì)PHP的兼容做了一些改進(jìn)和變更,以不斷改善所有受支持的PHP版本(當(dāng)前為5.6.20–7.4)之間的兼容性。

以下是開(kāi)發(fā)者需要注意的一些事項(xiàng)。

自動(dòng)PHP兼容性?huà)呙?span id="u5att0loeqg" class="ez-toc-section-end">

在WordPress 5.3中,內(nèi)核的Travis-CI中添加了一個(gè)新定時(shí)作業(yè),以使用PHPCompatibilityWP PHPCS規(guī)則集掃描潛在的PHP兼容性問(wèn)題(請(qǐng)參閱46152)。

在5.5周期中,將單獨(dú)檢查每個(gè)潛在問(wèn)題,并進(jìn)行修復(fù)或手動(dòng)將其標(biāo)記為假陽(yáng)性(false-positive)。

現(xiàn)在,不允許這種掃描產(chǎn)生錯(cuò)誤或警告,可以在提交后立即標(biāo)記和檢查潛在的PHP不兼容性,以確保它們永遠(yuǎn)不會(huì)在WordPress中發(fā)布。

將來(lái),當(dāng)WordPress支持的PHP版本發(fā)生更改(向任一方向更改)時(shí),可以輕松地調(diào)整配置文件以檢測(cè)新支持版本范圍內(nèi)的潛在問(wèn)題。

有關(guān)更多信息,請(qǐng)參見(jiàn)Trac上的(#49922)。

不推薦使用:wp_unregister_GLOBALS()

PHP中的register_globals指令在5.3版中已棄用,在5.4版中已完全刪除。因?yàn)樵摵瘮?shù)的第一行調(diào)用ini_get()false如果未識(shí)別該指令則返回),因此該函數(shù)將始終盡早返回,從而使其不必要。

WordPress 5.5起不推薦使用此wp_unregister_GLOBALS()功能。

有關(guān)更多信息,請(qǐng)參見(jiàn)#49938

不推薦使用: $HTTP_RAW_POST_DATA

$HTTP_RAW_POST_DATA全局變量在PHP 5.6.0過(guò)時(shí),在PHP 7.0.0完全去除。因此,開(kāi)發(fā)人員不應(yīng)依賴(lài)此變量的存在或準(zhǔn)確性。但是,在插件目錄中搜索此變量仍會(huì)產(chǎn)生約1,500個(gè)結(jié)果。盡管其中一些匹配項(xiàng)$HTTP_RAW_POST_DATA在注釋中或兼容性標(biāo)記中標(biāo)記,但是開(kāi)發(fā)人員應(yīng)審核他們的代碼以盡可能刪除此變量。

由于仍支持PHP 5.6,并且該變量存在于大量插件中,因此在WordPress 5.5中不會(huì)將其完全刪除。但是,當(dāng)支持的PHP版本更改為PHP> = 7.0時(shí),它將從WordPress內(nèi)核中刪除。

以下是推薦的替代方式:

$var = file_get_contents( 'php://input' );

5.5中已刪除了一些不影響代碼結(jié)果的變量。但是,還有兩個(gè)實(shí)例將被保留,因?yàn)樵趯⒉涣甲龇ǜ嬷鐓^(qū)之前,將它們刪除特別有風(fēng)險(xiǎn)。

有關(guān)更多信息,請(qǐng)參閱Trac(#49810)上的相關(guān)工單。

在IXR庫(kù)中spread運(yùn)算符用法

在WordPress 5.3中,在整個(gè)代碼庫(kù)中引入了PHP?spread?運(yùn)算符。除了代碼現(xiàn)代化之外,利用 spread?運(yùn)算符還有很多好處:

“允許使用的 spread?運(yùn)算符簡(jiǎn)化了代碼和提高性能-無(wú)論是在速度和內(nèi)存使用-尤其是因?yàn)樗呀?jīng)在許多這些過(guò)程中使用進(jìn)行多次功能被引入的每?一個(gè)頁(yè)面加載…”

WP 5.3: Introducing the spread operator?by @jrf

與內(nèi)核捆綁在一起的IXR庫(kù)(現(xiàn)在被視為“被采用的”庫(kù))為WordPress中與XML-RPC相關(guān)的功能提供了支持。

IXR庫(kù)代碼中的所有func_get_args()調(diào)用現(xiàn)在都已更新,以利用spread運(yùn)算符。

有關(guān)更多信息,請(qǐng)參閱Trac工單(#48267),WP 5.3:介紹了spread運(yùn)算符?,或最初將spread運(yùn)算符引入Core的Trac工單(#47678)。

使用Composer安裝PHPUnit

有時(shí)很難啟動(dòng)并運(yùn)行本地環(huán)境以為WordPress 內(nèi)核做出貢獻(xiàn),尤其是在需要運(yùn)行PHPUnit測(cè)試套件時(shí)。WordPress和PHP版本的不同組合要求使用不同版本的PHPUnit

Composer是用于PHP中的依賴(lài)項(xiàng)管理的工具。指定項(xiàng)目依賴(lài)項(xiàng)后,它將為您適當(dāng)?shù)毓芾戆惭b和更新那些依賴(lài)項(xiàng)。

[47881]開(kāi)始,PHPUnit現(xiàn)在已被定義為WordPress Core composer.json文件中的開(kāi)發(fā)人員要求。

運(yùn)行composer install將根據(jù)Composer運(yùn)行的PHP版本確定要安裝的PHPUnit的適當(dāng)版本。

有關(guān)更多信息,請(qǐng)參閱Trac工單(#46815)。

其他構(gòu)建/測(cè)試工具改進(jìn)

  • 現(xiàn)在,在本地運(yùn)行Core linting時(shí)將忽略包含src的插件和主題。這將防止在本地使用src代替build開(kāi)發(fā)時(shí)標(biāo)記違反代碼標(biāo)準(zhǔn)的行為(請(qǐng)參閱#49781)。
  • 以前,當(dāng)lint:php作業(yè)在Travis-CI上運(yùn)行時(shí),在?linting 之前使用PHPCBF格式化代碼。由于composer format在進(jìn)行更改時(shí)運(yùn)行會(huì)返回錯(cuò)誤,因此無(wú)法執(zhí)行?linting 部分,也不會(huì)生成報(bào)告。Core在為問(wèn)題添加代碼庫(kù)之前將不再運(yùn)行formatting命令(請(qǐng)參閱#49722)。
  • WordPress編碼標(biāo)準(zhǔn)規(guī)則集已從2.1.1版本更新到2.3.0。有關(guān)此更新中包含的更改的完整列表,請(qǐng)閱讀規(guī)則集的發(fā)行說(shuō)明(請(qǐng)參閱#50258)。
  • readme.html文件中指定的PHP推薦版本已從7.3更改為7.4。這使該建議與WordPress.org上的建議保持一致(請(qǐng)參閱#50480
聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書(shū)籍等各類(lèi)媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號(hào) WPDAXUE
WordPress資訊

Gutenberg 8.5 可上傳外部圖片、編輯圖庫(kù)的單個(gè)圖片、改善了拖放功能

2020-7-10 10:09:46

WordPress資訊

All In One SEO Pack 3.6.1及以下版本存在XSS漏洞,請(qǐng)及時(shí)更新

2020-7-18 7:46:39

0 條回復(fù) A文章作者 M管理員
    暫無(wú)討論,說(shuō)說(shuō)你的看法吧
?
個(gè)人中心
購(gòu)物車(chē)
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

永善县| 弥渡县| 云安县| 临城县| 墨江| 营山县| 岢岚县| 甘德县| 陵川县| 德阳市| 墨江| 洛浦县| 饶河县| 张家口市| 礼泉县| 青海省| 昭觉县| 湾仔区| 北京市| 丰台区| 哈巴河县| 郸城县| 岳池县| 仁布县| 凤山市| 石泉县| 墨玉县| 柳江县| 双城市| 白山市| 桦川县| 伊春市| 九寨沟县| 忻城县| 潍坊市| 平江县| 林州市| 平度市| 乌审旗| 伽师县| 武宣县|