diff --git a/src/TargetModuleBuilder.php b/src/TargetModuleBuilder.php index d759027cf626a8786a0674de8673d71da6b4913d..3c2f0bd5ad3526a5aa71c7efe86f693ca93bb8a2 100644 --- a/src/TargetModuleBuilder.php +++ b/src/TargetModuleBuilder.php @@ -8,6 +8,7 @@ use Drupal\config_enforce\ConfigEnforceHelperTrait; use Drupal\Core\Config\InstallStorage; use Drupal\Core\Extension\MissingDependencyException; use Drupal\Core\File\FileSystemInterface; +use Drupal\Core\Render\RendererInterface; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\Core\Url; use Drupal\config_enforce\ConfigEnforcer; @@ -37,11 +38,19 @@ class TargetModuleBuilder { // An instance of the Drupal file system service. protected $fileSystem; + /** + * The Drupal renderer service. + * + * @var \Drupal\Core\Render\RendererInterface + */ + protected RendererInterface $renderer; + /** * A basic constructor method. */ public function __construct() { $this->fileSystem = \Drupal::service('file_system'); + $this->renderer = \Drupal::service('renderer'); } /** @@ -313,15 +322,20 @@ class TargetModuleBuilder { */ protected function getInfoFileContents() { $template = \Drupal::service('extension.list.module')->getPath('config_enforce_devel') . '/templates/info.yml.twig'; - // Cast to string since twig_render_template returns a Markup object. - return (string) \Drupal::service('twig') - ->loadTemplate($template) - ->render([ - 'name' => $this->getName(), + + /** @var array Render array for the extension .info.yml contents. */ + $renderArray = [ + '#type' => 'inline_template', + '#template' => \file_get_contents($template), + '#context' => [ + 'name' => $this->getName(), 'description' => $this->getDescription(), - // Needed to prevent notices when Twig debugging is enabled. - 'theme_hook_original' => 'not-applicable', - ]); + ], + ]; + + // Cast to a string since this an object implementing + // \Drupal\Component\Render\MarkupInterface + return (string) $this->renderer->renderPlain($renderArray); } }