8000 bug #10670 [Templating] PhpEngine should propagate charset to its hel… · sandermarechal/symfony@5599eb0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 5599eb0

Browse files
committed
bug symfony#10670 [Templating] PhpEngine should propagate charset to its helpers (stloyd)
This PR was merged into the 2.3 branch. Discussion ---------- [Templating] PhpEngine should propagate charset to its helpers | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | symfony#10666 | License | MIT Commits ------- ed9e48b [Templating] PhpEngine should propagate charset to its helpers
2 parents 00e9598 + ed9e48b commit 5599eb0

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/Symfony/Component/Templating/PhpEngine.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ class PhpEngine implements EngineInterface, \ArrayAccess
3232
{
3333
protected $loader;
3434
protected $current;
35+
/**
36+
* @var HelperInterface[]
37+
*/
3538
protected $helpers;
3639
protected $parents;
3740
protected $stack;
@@ -368,6 +371,10 @@ public function escape($value, $context = 'html')
368371
public function setCharset($charset)
369372
{
370373
$this->charset = $charset;
< 10000 /td>
374+
375+
foreach ($this->helpers as $helper) {
376+
$helper->setCharset($this->charset);
377+
}
371378
}
372379

373380
/**

src/Symfony/Component/Templating/Tests/PhpEngineTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
use Symfony\Component\Templating\PhpEngine;
1515
use Symfony\Component\Templating\Loader\Loader;
16-
use Symfony\Component\Templating\Storage\Storage;
1716
use Symfony\Component\Templating\Storage\StringStorage;
1817
use Symfony\Component\Templating\Helper\SlotsHelper;
1918
use Symfony\Component\Templating\TemplateNameParser;
@@ -126,10 +125,14 @@ public function testEscape()
126125

127126
public function testGetSetCharset()
128127
{
129-
$engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader);
130-
$this->assertEquals('UTF-8', $engine->getCharset(), '->getCharset() returns UTF-8 by default');
128+
$helper = new SlotsHelper();
129+
$engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader, array($helper));
130+
$this->assertEquals('UTF-8', $engine->getCharset(), 'EngineInterface::getCharset() returns UTF-8 by default');
131+
$this->assertEquals('UTF-8', $helper->getCharset(), 'HelperInterface::getCharset() returns UTF-8 by default');
132+
131133
$engine->setCharset('ISO-8859-1');
132-
$this->assertEquals('ISO-8859-1', $engine->getCharset(), '->setCharset() changes the default charset to use');
134+
$this->assertEquals('ISO-8859-1', $engine->getCharset(), 'EngineInterface::setCharset() changes the default charset to use');
135+
$this->assertEquals('ISO-8859-1', $helper->getCharset(), 'EngineInterface::setCharset() changes the default charset of helper');
133136
}
134137

135138
public function testGlobalVariables()

0 commit comments

Comments
 (0)
0