drupal9.0.0-alpha1 发布

这是Drupal下一个主要版本的alpha版本。Drupal9 alpha版本的目的是让站点所有者、模块或主题作者开始测试他们的站点和代码是否与Drupal 9.0.x中的重要依赖项更改兼容。Drupal 9 alpha版本不应在生产中使用。在Drupal 9 alpha版本之间或drupal9.0.0-beta1之间没有提供升级方法。

升级到Drupal9
drupal8.7或者更老版本的Drupal8站点如果想更新到Drupal9,必须先更新到Drupal8.8或者Drupal8.9,Drupal8.8.0-rc1以前的所有更新函数都已经从Drupal9中删除。从Drupal 6和Drupal 7到Drupal 8和Drupal 9的迁移路径将在drupal9的整个发布周期中保持支持。

删除Drupal 8不推荐的api
85%的@deprecated提到的api已经被删除,包括删除不推荐的EntityManager服务,以及删除drupal_set_message()等等。

针对远程代码执行的呈现数组强化
SA-CORE-2018-002和SA-CORE-2018-004所需的安全修复,以及其他公开披露的安全问题,都表明渲染系统需要对回调调用的内容更加严格。如果您有添加呈现回调(access回调、lazy构建器、pre呈现或post呈现)的代码,则可能需要更新它才能在Drupal 9中工作。请阅读更改记录中的更多内容,了解对呈现数组中的回调调用的限制。

对核心主题和主题api的持续更改
核心主题正在更新,以消除它们对经典和稳定的基础主题的依赖。在这个alpha版本中,他们创建了从Classy继承的库的副本。目前正在进行类似的工作,以消除对类模板和稳定主题代码的依赖。

创建一个新的稳定的9主题的工作正在进行中,这个主题将更新标记和CSS,并在整个Drupal 9中保持向后兼容。Drupal8Stable将被弃用,并移到Drupal10之前的已贡献项目中。建议基于新的稳定的9主题构建新主题,而现有主题可以继续扩展Drupal 8的稳定。

主题函数在Drupal8.1.x中被弃用,并计划在Drupal9中删除。然而,我们在Drupal 8的生命周期中改进了我们的弃用策略,并向开发人员添加了警告;这些警告从未添加到主题函数系统中。我们目前正在探索将这些警告应用于主题函数,并将支持构建到我们的弃用检查工具中。使用主题函数的主题或模块应遵循将主题函数转换为细枝模板的说明。

后端(PHP)依赖项更新
与Drupal 8.9.x相比,此alpha版本包含以下关键的PHP依赖项更新:
Drupal9现在至少需要安装PHP7.3。还支持PHP7.4。
Symfony已从Symfony 3.4.32更新到4.4.3。
Twig已经从1.38.2更新到2.12.0。PHP开发人员和模板创建者所做的更改列在Drupal 9中准备使用Twig 2部分。

前端(CSS和JavaScript)依赖项更新
Drupal 9将继续依赖于CKEditor 4和jQuery 3.4。
大多数jQuery UI组件在Drupal 8.8中被弃用,在Drupal 9.0中被删除。这些库现在作为贡献模块提供,以使依赖于它们的任何模块或主题的更新更容易。有关更多信息,请参阅有关删除这些jQuery UI库的更改记录。https://www.drupal.org/project/drupal/issues/3087685

从Drupal 8.8开始仍在使用的库被放到Drupal 9核心,以便在drupal9生命周期结束之前更容易修复jQuery UI的任何潜在安全问题。我们计划在Drupal10.0.0发布之前弃用并删除所有这些组件。