开发者应该了解的 WordPress 5.5 对PHP相关的更改

WordPress 5.5PHP的兼容做了一些改进和变更,以不断改善所有受支持的PHP版本(当前为5.6.20–7.4)之间的兼容性。

以下是开发者需要注意的一些事项。

自动PHP兼容性扫描

在WordPress 5.3中,内核的Travis-CI中添加了一个新定时作业,以使用PHPCompatibilityWP PHPCS规则集扫描潜在的PHP兼容性问题(请参阅46152)。

在5.5周期中,将单独检查每个潜在问题,并进行修复或手动将其标记为假阳性(false-positive)。

现在,不允许这种扫描产生错误或警告,可以在提交后立即标记和检查潜在的PHP不兼容性,以确保它们永远不会在WordPress中发布。

将来,当WordPress支持的PHP版本发生更改(向任一方向更改)时,可以轻松地调整配置文件以检测新支持版本范围内的潜在问题。

有关更多信息,请参见Trac上的(#49922)。

不推荐使用:wp_unregister_GLOBALS()

PHP中的register_globals指令在5.3版中已弃用,在5.4版中已完全删除。因为该函数的第一行调用ini_get()false如果未识别该指令则返回),因此该函数将始终尽早返回,从而使其不必要。

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

有关更多信息,请参见#49938

不推荐使用: $HTTP_RAW_POST_DATA

$HTTP_RAW_POST_DATA全局变量在PHP 5.6.0过时,在PHP 7.0.0完全去除。因此,开发人员不应依赖此变量的存在或准确性。但是,在插件目录中搜索此变量仍会产生约1,500个结果。尽管其中一些匹配项$HTTP_RAW_POST_DATA在注释中或兼容性标记中标记,但是开发人员应审核他们的代码以尽可能删除此变量。

由于仍支持PHP 5.6,并且该变量存在于大量插件中,因此在WordPress 5.5中不会将其完全删除。但是,当支持的PHP版本更改为PHP> = 7.0时,它将从WordPress内核中删除。

以下是推荐的替代方式:

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

5.5中已删除了一些不影响代码结果的变量。但是,还有两个实例将被保留,因为在将不良做法告知社区之前,将它们删除特别有风险。

  • xmplrpc.php来源
  • wp-includes/rest-api/class-wp-rest-server.php来源

有关更多信息,请参阅Trac(#49810)上的相关工单。

在IXR库中spread运算符用法

在WordPress 5.3中,在整个代码库中引入了PHP spread 运算符。除了代码现代化之外,利用 spread 运算符还有很多好处:

“允许使用的 spread 运算符简化了代码和提高性能-无论是在速度和内存使用-尤其是因为它已经在许多这些过程中使用进行多次功能被引入的每 一个页面加载...”

WP 5.3: Introducing the spread operator by @jrf

与内核捆绑在一起的IXR库(现在被视为“被采用的”库)为WordPress中与XML-RPC相关的功能提供了支持。

IXR库代码中的所有func_get_args()调用现在都已更新,以利用spread运算符。

有关更多信息,请参阅Trac工单(#48267),WP 5.3:介绍了spread运算符 ,或最初将spread运算符引入Core的Trac工单(#47678)。

使用Composer安装PHPUnit

有时很难启动并运行本地环境以为WordPress 内核做出贡献,尤其是在需要运行PHPUnit测试套件时。WordPress和PHP版本的不同组合要求使用不同版本的PHPUnit

Composer是用于PHP中的依赖项管理的工具。指定项目依赖项后,它将为您适当地管理安装和更新那些依赖项。

[47881]开始,PHPUnit现在已被定义为WordPress Core composer.json文件中的开发人员要求。

运行composer install将根据Composer运行的PHP版本确定要安装的PHPUnit的适当版本。

有关更多信息,请参阅Trac工单(#46815)。

其他构建/测试工具改进

  • 现在,在本地运行Core linting时将忽略包含src的插件和主题。这将防止在本地使用src代替build开发时标记违反代码标准的行为(请参阅#49781)。
  • 以前,当lint:php作业在Travis-CI上运行时,在 linting 之前使用PHPCBF格式化代码。由于composer format在进行更改时运行会返回错误,因此无法执行 linting 部分,也不会生成报告。Core在为问题添加代码库之前将不再运行formatting命令(请参阅#49722)。
  • WordPress编码标准规则集已从2.1.1版本更新到2.3.0。有关此更新中包含的更改的完整列表,请阅读规则集的发行说明(请参阅#50258)。
  • readme.html文件中指定的PHP推荐版本已从7.3更改为7.4。这使该建议与WordPress.org上的建议保持一致(请参阅#50480
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
欢迎关注我们的微信公众号:WPDAXUE

倡萌

一个文科IT宅男,喜欢折腾WordPress和被它折腾 ^_^

暂无评论

发表评论