diff --git a/core/lib/Drupal/Core/Extension/ThemeExtensionList.php b/core/lib/Drupal/Core/Extension/ThemeExtensionList.php index 0e7a60d30fd1e6a820a632e542cdf81de2f0ab84..41ae9310bf4e52aa827293dc84ddb1066fb65107 100644 --- a/core/lib/Drupal/Core/Extension/ThemeExtensionList.php +++ b/core/lib/Drupal/Core/Extension/ThemeExtensionList.php @@ -266,7 +266,7 @@ protected function createExtensionInfo(Extension $extension) { $info = parent::createExtensionInfo($extension); if (!isset($info['base theme'])) { - throw new InfoParserException('Missing required key (base_theme) in ' . $extension->getExtensionPathname() . '/' . $extension->getExtensionFilename()); + throw new InfoParserException(sprintf('Missing required key ("base theme") in %s/%s, see https://www.drupal.org/node/3066038', $extension->getExtensionPathname(), $extension->getExtensionFilename())); } // Remove the base theme when 'base theme: false' is set in a theme diff --git a/core/tests/Drupal/KernelTests/Core/Theme/BaseThemeMissingTest.php b/core/tests/Drupal/KernelTests/Core/Theme/BaseThemeMissingTest.php index 68c7cff2f5a806ed39d843881a341e6c6d4bf914..9801f8b4e790dc58f96614bf867c7e6845016d0b 100644 --- a/core/tests/Drupal/KernelTests/Core/Theme/BaseThemeMissingTest.php +++ b/core/tests/Drupal/KernelTests/Core/Theme/BaseThemeMissingTest.php @@ -75,7 +75,7 @@ public function testMissingBaseThemeException() { ->setInfoParser(new VfsInfoParser('vfs:/')); $this->expectException(InfoParserException::class); - $this->expectExceptionMessage('Missing required key (base_theme) in themes/test_missing_base_theme/test_missing_base_theme.theme/test_missing_base_theme.theme'); + $this->expectExceptionMessage('Missing required key ("base theme") in themes/test_missing_base_theme/test_missing_base_theme.theme/test_missing_base_theme.theme, see https://www.drupal.org/node/3066038'); $this->themeInstaller->install(['test_missing_base_theme']); }