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 {