当发布新的Drupal主要版本时,自定义代码通常需要更新以与API更改保持一致,包括删除不推荐使用的API。
因为我总是忘记这个工作流程的某些方面,我决定将其记录下来以供将来参考。
一、Drupal网站升级工具
1、Upgrade Status module,在Drupal中使用UI界面管理,识别弃用代码、宿主环境兼容性等,站点管理员和开发者都可以使用它。
2、Drupal Check,在Drupal中使用命令行中使用,识别弃用代码、宿主环境兼容性等,开发人员,特别是在编码和持续集成(CI)期间可以使用它。
二、Upgrade Status模块
升级状态模块通过检查弃用代码和其他兼容性问题来评估Drupal站点对主要版本升级的准备情况。
1、像安装其他Drupal模块一样安装Upgrade Status模块:
ddev composer require –dev drupal/upgrade_status在这里,ddev是我更喜欢用来管理本地开发环境的工具。composer是PHP的依赖管理器,通常用于安装Drupal模块。–dev选项指定该模块应作为开发要求安装,这意味着它是开发环境所必需的,但不能安装在生产环境中。
2、启用升级状态模块:
ddev drush pm-enable upgrade_statusdrush代表“Drupal shell”,是一个用于管理Drupal站点的命令行实用程序。命令pm:enable(其中pm代表“包管理器”)用于启用Drupal中的模块。
3、启用该模块后,您可以通过导航到/Admin/Reports/Upgrade status的“管理”>“报告”>“升级状态”页面来访问其功能。
三、使用DDEV升级PHP和MySQL
升级状态模块可能会建议根据Drupal的系统要求更新PHP和MySQL。
要更新DDEV的PHP版本,请使用以下命令:
ddev config –-php-version 8.3要升级DDEV的MySQL版本并迁移数据库内容,请使用以下命令:
ddev debug migrate-database mariadb:10.11更新这些设置后,我重新启动DDEV并运行PHPUnit测试。虽然这些测试已集成到我的CI/CD工作流程中,但我也在开发机器上使用DDEV在本地运行它们以获得即时反馈。
四、Drupal检查
Drupal Check是一个命令行工具,用于扫描Drupal项目中已弃用的代码和兼容性问题。
在更新drupal站点的代码和第三方依赖关系之前,我总是运行drupal检查。这有助于确保在升级之前与当前代码库没有兼容性问题。我还在更新后运行drupal检查,以识别更新代码引入的任何新问题。
1、安装
ddev composer require –dev mglaman/drupal-check2、运行命令
./vendor/bin/drupal-check –-memory-limit 500M docroot/modules/custom五、直接使用PHPTan
在未来,我想评估直接使用PHPTan是否更简单。这是我自己的TODO。Drupal Check本质上是一个围绕PHPTan的包装器,提供默认配置,例如在级别2自动运行。要使用PHPTan实现相同的结果,我应该能够简单地运行:
php vendor/bin/phpstan analyze -l 2 docroot/modules/custom

