Skip to content
Permalink
Browse files
Engine: single block rendering does not abuse params
  • Loading branch information
dg committed Apr 1, 2020
1 parent adafc87 commit 5972e72
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 8 deletions.
@@ -77,8 +77,8 @@ public function __construct()
*/
public function render(string $name, $params = [], string $block = null): void
{
$this->createTemplate($name, (array) $params + ($block ? ['_renderblock' => $block] : []))
->render();
$this->createTemplate($name, (array) $params)
->render($block);
}


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


@@ -132,7 +132,7 @@ public function getReferenceType(): ?string
* Renders template.
* @internal
*/
public function render(): void
public function render(string $block = null): void
{
$this->prepare();

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

} elseif (!empty($this->params['_renderblock'])) { // single block rendering
} elseif ($block !== null) { // single block rendering
$tmp = $this;
while (in_array($this->referenceType, ['extends', null], true) && ($tmp = $tmp->referringTemplate));
if (!$tmp) {
$this->renderBlock($this->params['_renderblock'], $this->params);
$this->renderBlock($block, $this->params);
return;
}
}

0 comments on commit 5972e72

Please sign in to comment.