[HttpKernel] Arrays with scalar values passed to ESI fragment renderer throw deprecation notice

This commit is contained in:
Amrouche Hamza 2017-11-29 07:49:34 +01:00
parent 020d78a65b
commit d84b47fe9d
No known key found for this signature in database
GPG Key ID: 6968F2785ED4F012
2 changed files with 11 additions and 3 deletions

View File

@ -98,8 +98,8 @@ abstract class AbstractSurrogateFragmentRenderer extends RoutableFragmentRendere
private function containsNonScalars(array $values) private function containsNonScalars(array $values)
{ {
foreach ($values as $value) { foreach ($values as $value) {
if (is_array($value) && $this->containsNonScalars($value)) { if (is_array($value)) {
return true; return $this->containsNonScalars($value);
} elseif (!is_scalar($value) && null !== $value) { } elseif (!is_scalar($value) && null !== $value) {
return true; return true;
} }

View File

@ -34,7 +34,15 @@ class EsiFragmentRendererTest extends TestCase
{ {
$strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy(true), new UriSigner('foo')); $strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy(true), new UriSigner('foo'));
$request = Request::create('/'); $request = Request::create('/');
$reference = new ControllerReference('main_controller', array('foo' => array('a' => array(), 'b' => new \stdClass())), array()); $reference = new ControllerReference('main_controller', array('foo' => new \stdClass()), array());
$strategy->render($reference, $request);
}
public function testRenderFallbackWithScalarIsNotDeprecated()
{
$strategy = new EsiFragmentRenderer(new Esi(), $this->getInlineStrategy(true), new UriSigner('foo'));
$request = Request::create('/');
$reference = new ControllerReference('main_controller', array('foo' => array(true)), array());
$strategy->render($reference, $request); $strategy->render($reference, $request);
} }