From 0b4dd3aeae6791132a812ea66a2b889c6c1391f1 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Fri, 26 Dec 2025 22:36:26 +0100 Subject: [PATCH] feat: Make sure to not add Twig extensions multiple times --- src/Template/Twig.php | 12 +++++++++++- src/Tests/ApplicationHelper.php | 4 ---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Template/Twig.php b/src/Template/Twig.php index 1af591f..ec6461d 100644 --- a/src/Template/Twig.php +++ b/src/Template/Twig.php @@ -50,7 +50,17 @@ public function render(): string */ public static function addExtension(\Twig\Extension\ExtensionInterface $extension): void { - self::twig()->addExtension($extension); + $twig = self::twig(); + + if ($extension instanceof \Twig\Extension\AttributeExtension) { + $extension_class = $extension->getClass(); + } else { + $extension_class = $extension::class; + } + + if (!$twig->hasExtension($extension_class)) { + self::twig()->addExtension($extension); + } } /** diff --git a/src/Tests/ApplicationHelper.php b/src/Tests/ApplicationHelper.php index e7da58b..b5d762a 100644 --- a/src/Tests/ApplicationHelper.php +++ b/src/Tests/ApplicationHelper.php @@ -51,10 +51,6 @@ trait ApplicationHelper #[\PHPUnit\Framework\Attributes\BeforeClass] public static function loadApplication(): void { - // This avoids to register extensions multiple times (normally done in - // the Application class constructor) as it would fail. - \Minz\Template\Twig::reset(); - $app_name = \Minz\Configuration::$app_name; $application_class_name = "\\{$app_name}\\Application"; try {