2020年3月13日
Drupal 9的发布日期定为2020年6月3日,并且发布速度非常快。这对您的网站意味着什么?
首先,不要惊慌。Drupal 7和8的生命周期定于2021年11月,因此有足够的时间进行升级。但是,最好提前计划并利用新版本的新功能和安全性发布。
如果您在D7上迁移到Drupal 9与迁移到Drupal 8非常相似,实际上,没有理由等待,建议您尽快迁移到D8,并结合下一节中介绍的工具来寻找可能的方法。不兼容。
来自D7的最大挑战可能是您已经安装的模块的可用性(或不存在),以及在需要时查找和实施替换模块。以此为契机
审核您的站点并使用适合您需求的新体系结构
计划迁移。
还可以尝试“
升级状态”模块,因为它
“检查已安装的项目列表并显示其对Drupal core较新版本的可用性”。
如果您使用Drupal 8从本质上讲,Drupal 9将与最新版本的Drupal 8相同,减去已删除的不赞成使用的组件,并更新第三方依赖性。这意味着从D8升级应该相当容易,因为它仅涉及确保您的代码库不使用不推荐使用的代码。
使用
mglaman / drupal-check实用程序可以很容易地检查您的站点是否准备就绪。这是一个简单的CLI工具,用于生成弃用错误报告。将其作为开发包安装在您的站点上,并使用:
#安装:作曲家需要mglaman / drupal-check --dev#在目录上运行:drupal检查网站/模块
检查弃用通知时要记住的一些事项:
- 将所有模块更新为最新开发版本,以确保针对最新代码进行测试。
- 不要只检查contrib模块,而是针对主题,配置文件和自定义代码运行它。
- 如果您的项目具有持续的集成,则希望将此工具合并到工作流中以验证准备情况并避免回归。
- 不要在生产环境中运行此工具:)
如果您不喜欢CLI工具,或者希望向项目经理和客户显示更好的UI,则“
升级状态”模块将提供一个不错的仪表板,其中包含站点的每个模块的摘要和详细信息。它使用
drupal-check作为基础工具。
解决过时的问题现在,您已经获得了有关不推荐使用的代码的报告,是时候对其进行修复。弃用通知应清楚说明已弃用的内容以及建议的更改。我还想看看不赞成使用的函数的源代码,并查看其中的Drupal核心正在使用什么,因为它清楚地表明了需要完成的工作。
让我们举个例子:
调用已弃用的常量REQUEST_TIME:在drupal:8.3.0中已弃用,并已从drupal:9.0.0中删除。使用\ Drupal :: time()-> getRequestTime();
修复错误可以简单地将REQUEST_TIME替换为:
\ Drupal :: time()-> getRequestTime()
但是请注意,应尽可能避免在类中使用
\ Drupal调用,而应使用依赖项注入。因此,对于上面的示例,如果在服务类中使用
REQUEST_TIME,则将
“ datetime.time”服务注入到其中(由
\ Drupal :: time()返回的服务),然后在其上调用
getRequestTime()。有关如何使用依赖项注入调用服务的更深入信息,请参阅drupal.org文档中的“
访问服务 ”。
将模块标记为D9就绪如果您已修复所有弃用通知,并且是模块维护者或您的站点中有自定义模块,请在info.yml文件中将它们标记为与Drupal 8 和 9 兼容:
名称:我的模块类型:模块core_version_requirement:^ 8.8 || ^ 9
关于第三方依赖项的说明Drupal 9将更新其第三方依赖项,最著名的是Symfony 4.4组件。确保使用这些依赖项在D9 Beta中测试您的网站,以避免在发布D9时潜在的冲突。通过使用
drupal / core-recommended的9.0.x分支,确保使用推荐的依赖项版本运行。
最后,如果您要开始新的构建从最新的D8版本开始!如前所述,Drupal 9是D8的核心,因此可以安全地开始使用Drupal 8进行开发并等待发布日期升级。只需使用上面建议的工具来关注模块弃用注意事项。