From 3ca9685f58dce37fba0f850c8c2e5b41a99b0776 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Wed, 17 Apr 2024 08:50:46 -0400 Subject: [PATCH] Fix usage of display_end hook --- CHANGELOG | 2 +- src/Node/ModuleNode.php | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a0e0694c1..26966d282 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,6 @@ # 3.9.2 (2024-XX-XX) - * n/a + * Fix usage of display_end hook # 3.9.1 (2024-04-17) diff --git a/src/Node/ModuleNode.php b/src/Node/ModuleNode.php index 10e94f681..df407caf0 100644 --- a/src/Node/ModuleNode.php +++ b/src/Node/ModuleNode.php @@ -336,12 +336,15 @@ final class ModuleNode extends Node $compiler->raw('$this->getParent($context)'); } $compiler->raw("->unwrap()->yield(\$context, array_merge(\$this->blocks, \$blocks));\n"); - } else { + } + + $compiler->subcompile($this->getNode('display_end')); + + if (!$this->hasNode('parent')) { $compiler->write("return; yield '';\n"); // ensure at least one yield call even for templates with no output } $compiler - ->subcompile($this->getNode('display_end')) ->outdent() ->write("}\n\n") ;