Skip to content

Commit 5972e72

Browse files
committed
Engine: single block rendering does not abuse params
1 parent adafc87 commit 5972e72

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/Latte/Engine.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@ public function __construct()
7777
*/
7878
public function render(string $name, $params = [], string $block = null): void
7979
{
80-
$this->createTemplate($name, (array) $params + ($block ? ['_renderblock' => $block] : []))
81-
->render();
80+
$this->createTemplate($name, (array) $params)
81+
->render($block);
8282
}
8383

8484

@@ -88,8 +88,8 @@ public function render(string $name, $params = [], string $block = null): void
8888
*/
8989
public function renderToString(string $name, $params = [], string $block = null): string
9090
{
91-
$template = $this->createTemplate($name, (array) $params + ($block ? ['_renderblock' => $block] : []));
92-
return $template->capture([$template, 'render']);
91+
$template = $this->createTemplate($name, (array) $params);
92+
return $template->capture(function () use ($template, $block) { $template->render($block); });
9393
}
9494

9595

src/Latte/Runtime/Template.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public function getReferenceType(): ?string
132132
* Renders template.
133133
* @internal
134134
*/
135-
public function render(): void
135+
public function render(string $block = null): void
136136
{
137137
$this->prepare();
138138

@@ -154,14 +154,14 @@ public function render(): void
154154
ob_start(function () {});
155155
$params = $this->main();
156156
ob_end_clean();
157-
$this->createTemplate($this->parentName, $params, 'extends')->render();
157+
$this->createTemplate($this->parentName, $params, 'extends')->render($block);
158158
return;
159159

160-
} elseif (!empty($this->params['_renderblock'])) { // single block rendering
160+
} elseif ($block !== null) { // single block rendering
161161
$tmp = $this;
162162
while (in_array($this->referenceType, ['extends', null], true) && ($tmp = $tmp->referringTemplate));
163163
if (!$tmp) {
164-
$this->renderBlock($this->params['_renderblock'], $this->params);
164+
$this->renderBlock($block, $this->params);
165165
return;
166166
}
167167
}

0 commit comments

Comments
 (0)