如何准备好 Drupal 10 以及下一步应该做什么
已发表: 2021-10-20在当今快节奏和动态的数字世界中,企业几乎需要提供更安全、性能更好和功能丰富的 Web 体验。 幸运的是,如果您的组织仍然有点落后,有一种简单的方法可以缩小差距; 只需将您的 CMS 更新到最新版本即可。
随着 Drupal 9 于 2020 年年中发布以及 Drupal 10 即将发布的消息,周期中期时间框架对于某些组织来说可能是一个令人困惑的时期。 随着细节变得更加清晰,Specbee 将在这里回答您关于 Drupal 10 的所有问题。我们还将帮助您为 Drupal 10 做好准备,并在本文后面部分为您提供 Drupal 10 准备计划团队目前正在开展的工作的最新信息.

Drupal 10 什么时候发布,为什么发布这么快?
Drupal 10 暂定于 2022 年 6 月至 2022 年 11 月之间发布。根据最新报告,Drupal 10 准备计划团队一直在取得巨大进展,并且正在实现其目标和可交付成果——这意味着任何延迟都将是意料之外的。
从 Drupal 9 到 Drupal 10 如此快速的循环的原因是,自从 Drupal 8 发布并采用持续创新实践以来,Drupal 促进了与许多第三方组件的集成和依赖关系,从积极的方面来说,积极推动技术进步。 集成其中一些出色的组件,如 Composer、PHP、Symfony 和 CKEditor(以及许多其他组件),将 Drupal 的可用性和健壮性提升到了另一个水平,并为更广泛的人才库打开了大门。
但是所有这些组件和依赖项的进步也意味着 Drupal 必须加快步伐以跟上这些发布周期。 随着对主要/次要版本的每次主要集成更新, Drupal 也需要更新其主要/次要版本。
Symfony 是 Drupal 最大的依赖项之一。 Drupal 9 需要 Symfony 4,它会在 2023 年 11 月达到其生命周期终止 (EOL)。CKEditor 和其他 3rd 方组件也存在类似的情况。 随着这些主要组件到达 EOL,Drupal 9 也将在 2023 年 11 月到达 EOL。作为准备,Drupal 10 计划在此之前(6 月至 2022 年 11 月之间)发布,以便为组织提供足够的升级时间。

DrupalCon Europe 2021 上的 DriesNote - https://youtu.be/VuSBnL_uG2I
升级到 Drupal 8 还是 Drupal 9?
当 Drupal 7 于 2011 年初发布时,由于 Drupal 6 的巨大飞跃,社区引起了极大的兴奋。这也是很长一段时间......花了将近三年的努力、热情和承诺来构建改变游戏规则的Drupal 版本。
但是现在 Drupal 7 已有 10 多年的历史(这是“网站时代”的一个世纪),是时候为所有组织转向现代版本的 Drupal。 Drupal 7 将于2022年 11 月终止使用 (EOL)。 造成这种情况的更大原因之一是,随着 PHP 和 MySQL 发布其最新版本,Drupal 7 更难保持兼容以及仍然使用它按预期工作的网站。 更重要的是,组织也错过了自在 Drupal 8 中重组以来所做的关键改进和功能。
Drupal 8 于 2015 年 11 月发布,在拥抱现代库和组件的同时带来了巨大的架构变化。 对于 Drupal 来说,这是一个完整的范式转变。 这些进步带来了语义版本控制、更短的发布周期,以及最重要的是,未来容易升级——得到了许多人的赞赏。
那么,如果您使用的是 Drupal 7 或 Drupal 8,您的下一步计划是什么? 这个决定比你想象的要容易一些。 Drupal 8 将于 2021 年 11 月 2 日达到 EOL(它将不再获得任何进一步的社区支持或安全修复),并且所有 Drupal 8 站点都需要在此之前升级到 Drupal 9。 我们建议立即迁移到 Drupal 9 。 好消息是,从 Drupal 8 升级到 Drupal 9 真的很容易!
Drupal 9 于 2020 年 6 月发布,与 Drupal 8 的上一个版本没有太大区别。主要区别在于它具有更简洁、更精简的代码、一些最佳技术的最新版本和现代默认主题。

图片来源:Drupal.org

准备好 Drupal 10
另一个好消息是,从 Drupal 9 升级到 Drupal 10 将变得更加容易! 借助像 Rector 这样出色的工具来帮助您自动化代码更新,将 Drupal 9 站点升级到 Drupal 10 的自动化程度将比从 Drupal 8 升级到 Drupal 9 的自动化程度高 300%。
根据最近在 DrupalCon Europe 2021 上的 DriesNote,Drupal 10 准备计划已经取得了一些惊人的进展,并且已经完成了 70% 的工作!
以下是您可以为 Drupal 10 做好准备的操作:
- 如果您仍在使用 Drupal 7(或 Drupal 6),请寻找可靠且技术娴熟的 Drupal 合作伙伴,以帮助您无缝迁移到 Drupal 9。
- 如果您使用的是 Drupal 8,请尽快轻松升级到 Drupal 9(在 Drupal 8 EOL 之前)
- 确保您已更新到 Drupal 9 的最新(上次发布)版本
- 升级您贡献的所有项目以移除弃用以支持 Drupal 10。
- 这将确保它支持所有最新发布的库、组件和最新的 PHP 版本(因为它们的旧版本将在 Drupal 10 中弃用)
- 从这里开始,只需进行简单的核心升级,即可轻松升级到 Drupal 10。
Drupal 10 准备计划的更新
Drupal 10 已经在 Drupal 9 中构建。根据 Drupal 10 准备计划团队的说法,“Drupal 10 将是 Drupal 9 的改进版本”。 自 2020 年 3 月以来,该团队一直在努力确保 Drupal 10 按时发布,没有任何故障。 如果您想为该计划做出贡献,您可以通过许多不同的方式来实现。 在这里查看您可以如何提供帮助。
以下是 Drupal 10 准备计划的一些最新更新:
1. Symfony 6 兼容性
在 Drupal 9 中为 Symfony 5 解决了 Symfony 4 弃用问题。对于站点所有者和模块开发人员来说,在 9.3 中尽可能多地兼容 Symfony 6 会更好。
2. 移除 Drupal 核心使用的 jQuery UI 组件,替换为一组支持的解决方案
自己重建 jQuery UI 功能。 这可以通过使用 vanilla JavaScript 或使用 React 等框架来完成。
3. 提供适当的机制来弃用模块
一组用于命名、版本控制、弃用、是否保留包装器、强制卸载等的最佳实践。在info.yml文件中引入一个“生命周期”属性,用于主题和模块。
4. 允许 Drupal 9 与 Twig 3 一起安装
我们不知道 Twig 2 EOL 的确切时间,但它是否会强制在 Drupal 10 或 11 中进行更新,最好升级到 Twig 3。
5. 在 Drupal 9 中添加对 CKEditor 5 的可选支持,以便我们可以从 Drupal 10 中删除 CKE 4
将 Ckeditor 5 移动到 contrib 以寻求社区的支持。 如果我们希望能够在 Drupal 10 之前弃用 CKEditor 4,那么 CKEditor 5 模块需要在最后的 Drupal 9 次要版本中保持稳定,因此我们可以在 Drupal 10 中删除 CKEditor 4。
6. PHP 8.1 支持 Drupal 9 和 Drupal 10
PHP 8.1 兼容性有了很大的进步。 现在只有两个内部问题需要解决。 此外,PHP 8.1 在 RC3 中,因此现在可以使用它非常稳定。
7. 升级到 Guzzle 7
Guzzle 已更新至 Guzzle 7.3.0。 它需要 psr/http-client 1.0.1,它也已作为依赖项添加。
8. 用入门套件主题替换 Classy
用新的入门套件主题替换 Classy。 初学者工具包标记和 CSS 将被允许随时间更改,因为它仅作为主题的起点。
9. 删除 Drupal 10 分支上不推荐使用的模块
删除在 Drupal 9 中达成一致且不推荐使用的模块。
非常感谢@AkshayDevadiga,他也是 Drupal 10 准备计划的贡献者,提供了这些有用的更新!
