Skip to content

Commit b7a311f

Browse files
committed
UIMacros: uses Latte providers uiControl and uiPresenter instead of $_control and $_presenter
$_control and $_presenter still exist for BC
1 parent 0cdccef commit b7a311f

22 files changed

+128
-128
lines changed

src/Bridges/ApplicationLatte/TemplateFactory.php

+10-3
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,20 @@ public function createTemplate(UI\Control $control = NULL)
8686
}
8787

8888
// default parameters
89-
$template->control = $template->_control = $control;
90-
$template->presenter = $template->_presenter = $presenter;
89+
$template->control = $control;
90+
$template->presenter = $presenter;
9191
$template->user = $this->user;
92-
$template->netteCacheStorage = $this->cacheStorage;
9392
$template->baseUri = $template->baseUrl = $this->httpRequest ? rtrim($this->httpRequest->getUrl()->getBaseUrl(), '/') : NULL;
9493
$template->basePath = preg_replace('#https?://[^/]+#A', '', $template->baseUrl);
9594
$template->flashes = [];
95+
$latte->addProvider('uiControl', $control);
96+
$latte->addProvider('uiPresenter', $presenter);
97+
$latte->addProvider('cachingStorage', $this->cacheStorage);
98+
99+
// back compatibility
100+
$template->_control = $control;
101+
$template->_presenter = $presenter;
102+
$template->netteCacheStorage = $this->cacheStorage;
96103

97104
if ($presenter instanceof UI\Presenter && $presenter->hasFlashSession()) {
98105
$id = $control->getParameterId('flash');

src/Bridges/ApplicationLatte/UIMacros.php

+7-7
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ public function finalize()
6363
return [
6464
'if (Nette\Bridges\ApplicationLatte\UIRuntime::initialize($this, $this->blockQueue)) return;',
6565
'',
66-
$this->extends ? '' : '$this->parentName = $this->parentName ?: ($this->blocks && !$this->getReferringTemplate() && $this->params["_control"] instanceof Nette\Application\UI\Presenter
67-
? $this->params["_control"]->findLayoutTemplateFile() : NULL);',
66+
$this->extends ? '' : '$this->parentName = $this->parentName ?: ($this->blocks && !$this->getReferringTemplate() && isset($this->global->uiControl) && $this->global->uiControl instanceof Nette\Application\UI\Presenter
67+
? $this->global->uiControl->findLayoutTemplateFile() : NULL);',
6868
];
6969
}
7070

@@ -89,7 +89,7 @@ public function macroControl(MacroNode $node, PhpWriter $writer)
8989
$param = substr($param, $param[0] === '[' ? 1 : 6, -1); // removes array() or []
9090
}
9191
return ($name[0] === '$' ? "if (is_object($name)) \$_tmp = $name; else " : '')
92-
. '$_tmp = $_control->getComponent(' . $name . '); '
92+
. '$_tmp = $this->global->uiControl->getComponent(' . $name . '); '
9393
. 'if ($_tmp instanceof Nette\Application\UI\IRenderable) $_tmp->redrawControl(NULL, FALSE); '
9494
. ($node->modifiers === '' ? "\$_tmp->$method($param)" : $writer->write("ob_start(function () {}); \$_tmp->$method($param); echo %modify(ob_get_clean())"));
9595
}
@@ -104,7 +104,7 @@ public function macroLink(MacroNode $node, PhpWriter $writer)
104104
{
105105
$node->modifiers = preg_replace('#\|safeurl\s*(?=\||\z)#i', '', $node->modifiers);
106106
return $writer->using($node, $this->getCompiler())
107-
->write('echo %escape(%modify(' . ($node->name === 'plink' ? '$_presenter' : '$_control') . '->link(%node.word, %node.array?)))');
107+
->write('echo %escape(%modify(' . ($node->name === 'plink' ? '$this->global->uiPresenter' : '$this->global->uiControl') . '->link(%node.word, %node.array?)))');
108108
}
109109

110110

@@ -117,8 +117,8 @@ public function macroIfCurrent(MacroNode $node, PhpWriter $writer)
117117
throw new CompileException("Modifiers are not allowed in {{$node->name}}");
118118
}
119119
return $writer->write($node->args
120-
? 'if ($_presenter->isLinkCurrent(%node.word, %node.array?)) {'
121-
: 'if ($_presenter->getLastCreatedRequestFlag("current")) {'
120+
? 'if ($this->global->uiPresenter->isLinkCurrent(%node.word, %node.array?)) {'
121+
: 'if ($this->global->uiPresenter->getLastCreatedRequestFlag("current")) {'
122122
);
123123
}
124124

@@ -132,7 +132,7 @@ public function macroExtends(MacroNode $node, PhpWriter $writer)
132132
if ($node->modifiers || $node->parentNode || $node->args !== 'auto') {
133133
return FALSE;
134134
}
135-
return $writer->write('$this->parentName = $this->params["_presenter"]->findLayoutTemplateFile();');
135+
return $writer->write('$this->parentName = $this->global->uiPresenter->findLayoutTemplateFile();');
136136
}
137137

138138

src/Bridges/ApplicationLatte/UIRuntime.php

+13-4
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,28 @@ class UIRuntime
2020
{
2121
use Nette\StaticClass;
2222

23-
2423
/**
2524
* @return bool
2625
*/
2726
public static function initialize(Latte\Template $template, $blockQueue)
2827
{
29-
// snippet support
28+
// back compatiblity
3029
$params = $template->getParameters();
31-
if (!$template->getParentName() && !empty($params['_control']->snippetMode)) {
30+
if (empty($template->global->uiControl) && isset($params['_control'])) {
31+
trigger_error('Replace template variable $_control with provider: $latte->addProvider("uiControl", ...)', E_USER_DEPRECATED);
32+
$template->global->uiControl = $params['_control'];
33+
}
34+
if (empty($template->global->uiPresenter) && isset($params['_presenter'])) {
35+
trigger_error('Replace template variable $_presenter with provider: $latte->addProvider("uiPresenter", ...)', E_USER_DEPRECATED);
36+
$template->global->uiPresenter = $params['_presenter'];
37+
}
38+
39+
// snippet support
40+
if (!$template->getParentName() && !empty($template->global->uiControl->snippetMode)) {
3241
$tmp = $template;
3342
while (in_array($tmp->getReferenceType(), ['extends', 'include', NULL], TRUE) && ($tmp = $tmp->getReferringTemplate()));
3443
if (!$tmp) {
35-
self::renderSnippets($params['_control'], $blockQueue, $params);
44+
self::renderSnippets($template->global->uiControl, $blockQueue, $params);
3645
return TRUE;
3746
}
3847
};

tests/Bridges.Latte/Template.getParentName().phpt

+10-29
Original file line numberDiff line numberDiff line change
@@ -18,60 +18,41 @@ class MockPresenter extends Nette\Application\UI\Presenter
1818

1919
$latte = new Latte\Engine;
2020
$latte->setLoader(new Latte\Loaders\StringLoader);
21+
$latte->addProvider('uiControl', new MockPresenter);
2122
UIMacros::install($latte->getCompiler());
2223

23-
$template = $latte->createTemplate(
24-
'',
25-
['_control' => new MockPresenter]
26-
);
24+
$template = $latte->createTemplate('');
2725
$template->prepare();
2826
Assert::null($template->getParentName());
2927

30-
$template = $latte->createTemplate(
31-
'{block}...{/block}',
32-
['_control' => new MockPresenter]
33-
);
28+
$template = $latte->createTemplate('{block}...{/block}');
3429
$template->prepare();
3530
Assert::null($template->getParentName());
3631

37-
$template = $latte->createTemplate(
38-
'{block name}...{/block}',
39-
['_control' => new MockPresenter]
40-
);
32+
$template = $latte->createTemplate('{block name}...{/block}');
4133
$template->prepare();
4234
Assert::same('layout.latte', $template->getParentName());
4335

44-
$template = $latte->createTemplate(
45-
'{extends "file.latte"} {block name}...{/block}',
46-
['_control' => new MockPresenter]
47-
);
36+
$template = $latte->createTemplate('{extends "file.latte"} {block name}...{/block}');
4837
$template->prepare();
4938
Assert::same('file.latte', $template->getParentName());
5039

51-
$template = $latte->createTemplate(
52-
'{extends "file.latte"}',
53-
['_control' => new MockPresenter]
54-
);
40+
$template = $latte->createTemplate('{extends "file.latte"}');
5541
$template->prepare();
5642
Assert::same('file.latte', $template->getParentName());
5743

5844
$template = $latte->createTemplate(
5945
'{extends $file} {block name}...{/block}',
60-
['_control' => new MockPresenter, 'file' => 'file.latte']
46+
['file' => 'file.latte']
6147
);
6248
$template->prepare();
6349
Assert::same('file.latte', $template->getParentName());
6450

65-
$template = $latte->createTemplate(
66-
'{extends none}',
67-
['_control' => new MockPresenter]
68-
);
51+
$template = $latte->createTemplate('{extends none}');
6952
$template->prepare();
7053
Assert::null($template->getParentName());
7154

72-
$template = $latte->createTemplate(
73-
'{extends auto}',
74-
['_presenter' => new MockPresenter]
75-
);
55+
$latte->addProvider('uiPresenter', new MockPresenter);
56+
$template = $latte->createTemplate('{extends auto}');
7657
$template->prepare();
7758
Assert::same('layout.latte', $template->getParentName());

tests/Bridges.Latte/UIMacros.control.2.phpt

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ $latte = new Latte\Engine;
3939
$latte->setLoader(new Latte\Loaders\StringLoader);
4040
UIMacros::install($latte->getCompiler());
4141

42-
$params['_control'] = new MockComponent;
42+
$latte->addProvider('uiControl', new MockComponent);
4343
$params['form'] = new MockControl;
4444
$params['name'] = 'form';
4545

tests/Bridges.Latte/UIMacros.control.phpt

+9-9
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ $compiler = new Latte\Compiler;
1515
UIMacros::install($compiler);
1616

1717
// {control ...}
18-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->render() ?>', $compiler->expandMacro('control', 'form', '')->openingCode);
19-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->render(); echo call_user_func($this->filters->filter, %a%) ?>', $compiler->expandMacro('control', 'form', 'filter')->openingCode);
20-
Assert::match('<?php if (is_object($form)) %a% else %a% $_control->getComponent($form); %a%->render() ?>', $compiler->expandMacro('control', '$form', '')->openingCode);
21-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->renderType() ?>', $compiler->expandMacro('control', 'form:type', '')->openingCode);
22-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->{"render$type"}() ?>', $compiler->expandMacro('control', 'form:$type', '')->openingCode);
23-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->renderType(\'param\') ?>', $compiler->expandMacro('control', 'form:type param', '')->openingCode);
24-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->renderType([\'param\' => 123]) ?>', $compiler->expandMacro('control', 'form:type param => 123', '')->openingCode);
25-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->renderType([\'param\' => 123]) ?>', $compiler->expandMacro('control', 'form:type, param => 123', '')->openingCode);
26-
Assert::match('<?php %a% $_control->getComponent("form"); %a%->render(); echo call_user_func($this->filters->striptags, %a%) ?>', $compiler->expandMacro('control', 'form', 'striptags')->openingCode);
18+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->render() ?>', $compiler->expandMacro('control', 'form', '')->openingCode);
19+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->render(); echo call_user_func($this->filters->filter, %a%) ?>', $compiler->expandMacro('control', 'form', 'filter')->openingCode);
20+
Assert::match('<?php if (is_object($form)) %a% else %a% $this->global->uiControl->getComponent($form); %a%->render() ?>', $compiler->expandMacro('control', '$form', '')->openingCode);
21+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->renderType() ?>', $compiler->expandMacro('control', 'form:type', '')->openingCode);
22+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->{"render$type"}() ?>', $compiler->expandMacro('control', 'form:$type', '')->openingCode);
23+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->renderType(\'param\') ?>', $compiler->expandMacro('control', 'form:type param', '')->openingCode);
24+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->renderType([\'param\' => 123]) ?>', $compiler->expandMacro('control', 'form:type param => 123', '')->openingCode);
25+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->renderType([\'param\' => 123]) ?>', $compiler->expandMacro('control', 'form:type, param => 123', '')->openingCode);
26+
Assert::match('<?php %a% $this->global->uiControl->getComponent("form"); %a%->render(); echo call_user_func($this->filters->striptags, %a%) ?>', $compiler->expandMacro('control', 'form', 'striptags')->openingCode);

tests/Bridges.Latte/UIMacros.link.2.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ $latte = new Latte\Engine;
5050
$latte->setLoader(new Latte\Loaders\StringLoader);
5151
UIMacros::install($latte->getCompiler());
5252

53-
$params['_control'] = new MockControl;
54-
$params['_presenter'] = new MockPresenter;
53+
$latte->addProvider('uiControl', new MockControl);
54+
$latte->addProvider('uiPresenter', new MockPresenter);
5555
$params['action'] = 'login';
5656
$params['arr'] = ['link' => 'login', 'param' => 123];
5757

tests/Bridges.Latte/UIMacros.link.phpt

+12-12
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ $compiler->setContentType($compiler::CONTENT_TEXT);
1616
UIMacros::install($compiler);
1717

1818
// {link ...}
19-
Assert::same('<?php echo $_control->link("p") ?>', $compiler->expandMacro('link', 'p', '')->openingCode);
20-
Assert::same('<?php echo call_user_func($this->filters->filter, $_control->link("p")) ?>', $compiler->expandMacro('link', 'p', 'filter')->openingCode);
21-
Assert::same('<?php echo $_control->link("p:a") ?>', $compiler->expandMacro('link', 'p:a', '')->openingCode);
22-
Assert::same('<?php echo $_control->link($dest) ?>', $compiler->expandMacro('link', '$dest', '')->openingCode);
23-
Assert::same('<?php echo $_control->link($p:$a) ?>', $compiler->expandMacro('link', '$p:$a', '')->openingCode);
24-
Assert::same('<?php echo $_control->link("$p:$a") ?>', $compiler->expandMacro('link', '"$p:$a"', '')->openingCode);
25-
Assert::same('<?php echo $_control->link("p:a") ?>', $compiler->expandMacro('link', '"p:a"', '')->openingCode);
26-
Assert::same('<?php echo $_control->link(\'p:a\') ?>', $compiler->expandMacro('link', "'p:a'", '')->openingCode);
27-
28-
Assert::same('<?php echo $_control->link("p", [\'param\']) ?>', $compiler->expandMacro('link', 'p param', '')->openingCode);
29-
Assert::same('<?php echo $_control->link("p", [\'param\' => 123]) ?>', $compiler->expandMacro('link', 'p param => 123', '')->openingCode);
30-
Assert::same('<?php echo $_control->link("p", [\'param\' => 123]) ?>', $compiler->expandMacro('link', 'p, param => 123', '')->openingCode);
19+
Assert::same('<?php echo $this->global->uiControl->link("p") ?>', $compiler->expandMacro('link', 'p', '')->openingCode);
20+
Assert::same('<?php echo call_user_func($this->filters->filter, $this->global->uiControl->link("p")) ?>', $compiler->expandMacro('link', 'p', 'filter')->openingCode);
21+
Assert::same('<?php echo $this->global->uiControl->link("p:a") ?>', $compiler->expandMacro('link', 'p:a', '')->openingCode);
22+
Assert::same('<?php echo $this->global->uiControl->link($dest) ?>', $compiler->expandMacro('link', '$dest', '')->openingCode);
23+
Assert::same('<?php echo $this->global->uiControl->link($p:$a) ?>', $compiler->expandMacro('link', '$p:$a', '')->openingCode);
24+
Assert::same('<?php echo $this->global->uiControl->link("$p:$a") ?>', $compiler->expandMacro('link', '"$p:$a"', '')->openingCode);
25+
Assert::same('<?php echo $this->global->uiControl->link("p:a") ?>', $compiler->expandMacro('link', '"p:a"', '')->openingCode);
26+
Assert::same('<?php echo $this->global->uiControl->link(\'p:a\') ?>', $compiler->expandMacro('link', "'p:a'", '')->openingCode);
27+
28+
Assert::same('<?php echo $this->global->uiControl->link("p", [\'param\']) ?>', $compiler->expandMacro('link', 'p param', '')->openingCode);
29+
Assert::same('<?php echo $this->global->uiControl->link("p", [\'param\' => 123]) ?>', $compiler->expandMacro('link', 'p param => 123', '')->openingCode);
30+
Assert::same('<?php echo $this->global->uiControl->link("p", [\'param\' => 123]) ?>', $compiler->expandMacro('link', 'p, param => 123', '')->openingCode);

tests/Bridges.Latte/UIMacros.renderSnippets.extends.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ class TestPresenter extends Nette\Application\UI\Presenter
1919
{
2020
$latte = new Latte\Engine;
2121
UIMacros::install($latte->getCompiler());
22-
$params['_control'] = $this;
23-
return $latte->renderToString(__DIR__ . '/templates/snippets.extends.latte', $params);
22+
$latte->addProvider('uiControl', $this);
23+
return $latte->renderToString(__DIR__ . '/templates/snippets.extends.latte');
2424
}
2525
}
2626

tests/Bridges.Latte/UIMacros.renderSnippets.phpt

+4-4
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ class InnerControl extends Nette\Application\UI\Control
1717
{
1818
$latte = new Latte\Engine;
1919
UIMacros::install($latte->getCompiler());
20-
$params['_presenter'] = $this->getPresenter();
21-
$params['_control'] = $this;
20+
$latte->addProvider('uiPresenter', $this->getPresenter());
21+
$latte->addProvider('uiControl', $this);
2222
$params['say'] = 'Hello';
2323
$latte->render(__DIR__ . '/templates/snippet-included.latte', $params);
2424
}
@@ -39,8 +39,8 @@ class TestPresenter extends Nette\Application\UI\Presenter
3939
{
4040
$latte = new Latte\Engine;
4141
UIMacros::install($latte->getCompiler());
42-
$params['_control'] = $this;
43-
$latte->render(__DIR__ . '/templates/snippet-include.latte', $params);
42+
$latte->addProvider('uiControl', $this);
43+
$latte->render(__DIR__ . '/templates/snippet-include.latte');
4444
}
4545
}
4646

tests/Bridges.Latte/UIMacros.renderSnippets2.phpt

+6-6
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ class InnerControl extends Nette\Application\UI\Control
2424
$latte = new Latte\Engine;
2525
$latte->setLoader(new Latte\Loaders\StringLoader);
2626
UIMacros::install($latte->getCompiler());
27-
$params['_presenter'] = $this->getPresenter();
28-
$params['_control'] = $this;
27+
$latte->addProvider('uiPresenter', $this->getPresenter());
28+
$latte->addProvider('uiControl', $this);
2929
$params['say'] = 'Hello';
3030
$latte->render('{snippet testA}{$say}{/snippet}', $params);
3131
}
@@ -35,8 +35,8 @@ class InnerControl extends Nette\Application\UI\Control
3535
$latte = new Latte\Engine;
3636
$latte->setLoader(new Latte\Loaders\StringLoader);
3737
UIMacros::install($latte->getCompiler());
38-
$params['_presenter'] = $this->getPresenter();
39-
$params['_control'] = $this;
38+
$latte->addProvider('uiPresenter', $this->getPresenter());
39+
$latte->addProvider('uiControl', $this);
4040
$params['say'] = 'world';
4141
$latte->render('{snippet testB}{$say}{/snippet}', $params);
4242
}
@@ -57,8 +57,8 @@ class TestPresenter extends Nette\Application\UI\Presenter
5757
$latte = new Latte\Engine;
5858
$latte->setLoader(new Latte\Loaders\StringLoader);
5959
UIMacros::install($latte->getCompiler());
60-
$params['_control'] = $this;
61-
$latte->render('', $params);
60+
$latte->addProvider('uiControl', $this);
61+
$latte->render('');
6262
}
6363
}
6464

tests/Bridges.Latte/UIMacros.renderSnippets3.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ class TestPresenter extends Nette\Application\UI\Presenter
1717
{
1818
$latte = new Latte\Engine;
1919
UIMacros::install($latte->getCompiler());
20-
$params['_control'] = $this;
21-
$latte->render(__DIR__ . '/templates/snippetArea-include.latte', $params);
20+
$latte->addProvider('uiControl', $this);
21+
$latte->render(__DIR__ . '/templates/snippetArea-include.latte');
2222
}
2323
}
2424

tests/Bridges.Latte/UIMacros.renderSnippets4.phpt

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class TestPresenter extends Nette\Application\UI\Presenter
1818
{
1919
$latte = new Latte\Engine;
2020
UIMacros::install($latte->getCompiler());
21-
$params['_control'] = $this;
22-
$latte->render(__DIR__ . '/templates/snippets.includeblock.latte', $params);
21+
$latte->addProvider('uiControl', $this);
22+
$latte->render(__DIR__ . '/templates/snippets.includeblock.latte');
2323
}
2424
}
2525

tests/Bridges.Latte/UIMacros.snippet1.phpt

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class MockControl
2222
$latte = new Latte\Engine;
2323
UIMacros::install($latte->getCompiler());
2424
$latte->setLoader(new Latte\Loaders\StringLoader);
25+
$latte->addProvider('uiControl', new MockControl);
2526

2627
Assert::match(<<<EOD
2728
<div>
@@ -35,4 +36,4 @@ EOD
3536
{/snippet}
3637
</div>
3738
EOD
38-
, ['_control' => new MockControl]));
39+
));

tests/Bridges.Latte/UIMacros.snippet2.phpt

+2-1
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@ class MockControl
2222
$latte = new Latte\Engine;
2323
UIMacros::install($latte->getCompiler());
2424
$latte->setLoader(new Latte\Loaders\StringLoader);
25+
$latte->addProvider('uiControl', new MockControl);
2526

2627
Assert::match(<<<EOD
2728
<p><div id="">hello</div> world</p>
2829
EOD
2930
, $latte->renderToString(<<<EOD
3031
<p>{snippet abc}hello{/snippet} world</p>
3132
EOD
32-
, ['_control' => new MockControl]));
33+
));

tests/Bridges.Latte/UIMacros.snippet3.phpt

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ class MockControl
2222
$latte = new Latte\Engine;
2323
UIMacros::install($latte->getCompiler());
2424
$latte->setLoader(new Latte\Loaders\StringLoader);
25-
$params['_control'] = new MockControl;
25+
$latte->addProvider('uiControl', new MockControl);
2626

2727
Assert::match(<<<EOD
2828
<p id="">hello</p>
2929
EOD
3030
, $latte->renderToString(<<<EOD
3131
<p n:inner-snippet="abc">hello</p>
3232
EOD
33-
, $params));
33+
));
3434

3535

3636
Assert::match(<<<EOD
@@ -39,7 +39,7 @@ EOD
3939
, $latte->renderToString(<<<EOD
4040
<p n:snippet="abc">hello</p>
4141
EOD
42-
, $params));
42+
));
4343

4444

4545
Assert::error(function () use ($latte) {

0 commit comments

Comments
 (0)