周一,WordPress 核心贡献者 Jonathan Desrosiers 在 Make WordPress Core 博客上发布了一篇详细的帖子,介绍即将发布的 PHP 8 版本及其对 WordPress 的影响。

PHP 8 即将推出

PHP 8 计划于 2020 年 11 月 26 日发布,是我们最喜欢的脚本语言的下一次重大更新。虽然以前的 PHP 版本对 WordPress 生态系统没有太大的负面影响,但这次更新有一些可能影响向后兼容性的重大变化。还应该注意的是,许多在 PHP 7.x 中弃用的功能现在将在 PHP 8 中删除。

WordPress 核心的状态

在他的文章中,Desrosiers 强调了正在进行的工作是使核心软件保持最新。 “WordPress Core 旨在与版本 5.6 中的 PHP 8.0 兼容(目前计划于 2020 年 12 月 8 日发布),”他写道。

然而,这并不意味着在 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(维护者)PHPCS 的 WordPress 编码标准 Sniff 和 Yoast DevOps 经理 Herre Groen 撰写并发布了一份全面的 WordPress/PHP 8 兼容性报告。

我强烈建议您花时间阅读整个报告,但它确实概述了 PHP 8 升级可能对大型 WordPress 网站(尤其是插件和主题生态系统)产生如此巨大影响的主要原因。

“但是,PHP 7.* 版本比以前的 PHP 版本有更广泛的弃用。从 PHP 5.6 到 PHP 7 是一个相对简单的迁移,从 7.x 迁移到 8 是可能的非常痛苦,尤其是对于非常古老的代码库,如 WordPress 和许多可用的插件。对于类型良好的代码库,或者与最新的 PHP 版本保持同步的代码库,这没什么大不了的。”

< p >作为一些插件的维护者,其中一些插件的代码可以追溯到八年前,有人担心这次升级可能会导致网站崩溃。

PHP兼容库。如何做好准备

我问过 Reiss 和 Folmer,插件和主题开发人员可以做哪些准备工作,他们分享了一些建议。

首先,开发人员应该了解 PHP 8 的变化:阅读有关 PHP 8 的 Make 帖子,阅读 Yoast PHP8 兼容性报告,阅读“从 PHP 7.4 迁移到 PHP 8.0”部分,然后通过阅读PHP 8 分支中的升级文档和 PHP 8 的 RFC。

许多工具可用于帮助查找不兼容性:

  • 通过 php -l 命令 (以确保遍历所有文件)或使用 PHP Parallel Lint。
  • 对其代码运行 PHP Compatibility:需要注意的是,几乎所有与 PHP 8 相关的嗅探都在 PHPCompatibility 10.0.0 版本中,因此需要使用 developer 分支或通过 Composer dev - Temporary development until版本 10.0.0 发布。同样重要的是,为了使这种方法可靠,需要相当大的测试范围。
  • 针对 PHP 8 上的插件或主题运行单元/集成测试,并修复出现的任何错误。这通常意味着测试套件首先需要与 PHPUnit 9.3+ 兼容。 PHPUnit Polyfills 包装器和 WP Test Utilities 包(均在 Yoast GitHub 组织下发布)可以帮助解决这个问题。
  • 运行 WordPress 单元测试和 WordPress 端到端测试以激活您的插件并修复出现的任何问题。
  • 检查所述测试的(严格)代码覆盖率是否足够高,如果没有,则添加更多测试,确保覆盖令人满意和不令人满意的路径。
  • 如果您没有测试,请手动测试所有内容,尤其要留意“不愉快的路径”,并在可预见的未来期待错误报告。同时,这可能是研究为您的插件或主题实施单元/集成测试的好时机。

还有时间,但时间不多了

正如 Desrosiers 在 Make 帖子中指出的那样,WordPress 仅在正式发布 5.6 时才准备就绪12 月初 PHP 8。这可能意味着许多以 WordPress 为中心的托管公司只会在 WordPress 核心兼容后才考虑向其客户提供升级。因此,作为插件和主题开发人员,我们有一些时间来测试我们的产品并做好准备,但那个窗口很快就会关闭。

幸运的是,我们拥有最新的知识和工具供我们使用。我们只需要将它们付诸行动。

喜欢这样:

喜欢正在加载...

资源