Symfony Exception

TypeError

HTTP 500 Internal Server Error

Return value of Limenius\ReactRenderer\Twig\ReactRenderExtension::jsonDecode() must be of the type array, object returned

Exception

TypeError

  1.                     json_last_error_msg()
  2.                 )
  3.             );
  4.         }
  5.         return $json;
  6.     }
  7.     private function serverSideRender(array $data, array $options): array
  8.     {
  9.         if ($this->shouldCache($options)) {
  1.     }
  2.     public function reactRenderComponentArray(string $componentName, array $options = array()): array
  3.     {
  4.         $props = isset($options['props']) ? $options['props'] : array();
  5.         $propsArray is_array($props) ? $props $this->jsonDecode($props);
  6.         $str '';
  7.         $data = array(
  8.             'component_name' => $componentName,
  9.             'props' => $propsArray,
  1.         $macros $this->macros;
  2.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02 $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  3.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->enter($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""recipe/recipe.html.twig"));
  4.         // line 3
  5.         $context["recipes"] = $this->extensions['Limenius\ReactRenderer\Twig\ReactRenderExtension']->reactRenderComponentArray("RecipesApp", ["props" => (isset($context["props"]) || array_key_exists("props"$context) ? $context["props"] : (function () { throw new RuntimeError('Variable "props" does not exist.'3$this->source); })())]);
  6.         // line 1
  7.         $this->parent $this->loadTemplate("base.html.twig""recipe/recipe.html.twig"1);
  8.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  9.         
  10.         $__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02->leave($__internal_319393461309892924ff6e74d6d6e64287df64b63545b994e100d4ab223aed02_prof);
in vendor/twig/twig/src/Template.php->doDisplay (line 407)
  1.     }
  2.     protected function displayWithErrorHandling(array $context, array $blocks = [])
  3.     {
  4.         try {
  5.             $this->doDisplay($context$blocks);
  6.         } catch (Error $e) {
  7.             if (!$e->getSourceContext()) {
  8.                 $e->setSourceContext($this->getSourceContext());
  9.             }
in vendor/twig/twig/src/Template.php->displayWithErrorHandling (line 380)
  1.         return $this->blocks;
  2.     }
  3.     public function display(array $context, array $blocks = [])
  4.     {
  5.         $this->displayWithErrorHandling($this->env->mergeGlobals($context), array_merge($this->blocks$blocks));
  6.     }
  7.     public function render(array $context)
  8.     {
  9.         $level ob_get_level();
in vendor/twig/twig/src/Template.php->display (line 392)
  1.             ob_start();
  2.         } else {
  3.             ob_start(function () { return ''; });
  4.         }
  5.         try {
  6.             $this->display($context);
  7.         } catch (\Throwable $e) {
  8.             while (ob_get_level() > $level) {
  9.                 ob_end_clean();
  10.             }
  1.      */
  2.     public function render(array $context = []): string
  3.     {
  4.         // using func_get_args() allows to not expose the blocks argument
  5.         // as it should only be used by internal code
  6.         return $this->template->render($context, \func_get_args()[1] ?? []);
  7.     }
  8.     /**
  9.      * Displays the template.
  10.      *
in vendor/twig/twig/src/Environment.php->render (line 318)
  1.      * @throws SyntaxError  When an error occurred during compilation
  2.      * @throws RuntimeError When an error occurred during rendering
  3.      */
  4.     public function render($name, array $context = [])
  5.     {
  6.         return $this->load($name)->render($context);
  7.     }
  8.     /**
  9.      * Displays a template.
  10.      *
  1.         if ($this->container->has('templating')) {
  2.             @trigger_error('Using the "templating" service is deprecated since version 4.3 and will be removed in 5.0; use Twig instead.'E_USER_DEPRECATED);
  3.             $content $this->container->get('templating')->render($view$parameters);
  4.         } elseif ($this->container->has('twig')) {
  5.             $content $this->container->get('twig')->render($view$parameters);
  6.         } else {
  7.             throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available. Try running "composer require symfony/twig-bundle".');
  8.         }
  9.         if (null === $response) {
Controller->render('recipe/recipe.html.twig', array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}')) in src/Controller/RecipeController.php (line 45)
  1.         }
  2.         return $this->render('recipe/recipe.html.twig', [
  3.             // A JSON string also works
  4.             'props' => $serializer->serialize(
  5.                 ['recipe' => $recipe ], 'json')
  6.         ]);
  7.     }
  8.     /**
  9.      * @Route("/redux/", name="homepage_redux")
in vendor/symfony/http-kernel/HttpKernel.php->recipeAction (line 158)
  1.         $this->dispatcher->dispatch($eventKernelEvents::CONTROLLER_ARGUMENTS);
  2.         $controller $event->getController();
  3.         $arguments $event->getArguments();
  4.         // call controller
  5.         $response $controller(...$arguments);
  6.         // view
  7.         if (!$response instanceof Response) {
  8.             $event = new ViewEvent($this$request$type$response);
  9.             $this->dispatcher->dispatch($eventKernelEvents::VIEW);
  1.     public function handle(Request $request$type HttpKernelInterface::MASTER_REQUEST$catch true)
  2.     {
  3.         $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
  4.         try {
  5.             return $this->handleRaw($request$type);
  6.         } catch (\Exception $e) {
  7.             if ($e instanceof RequestExceptionInterface) {
  8.                 $e = new BadRequestHttpException($e->getMessage(), $e);
  9.             }
  10.             if (false === $catch) {
  1.         $this->boot();
  2.         ++$this->requestStackSize;
  3.         $this->resetServices true;
  4.         try {
  5.             return $this->getHttpKernel()->handle($request$type$catch);
  6.         } finally {
  7.             --$this->requestStackSize;
  8.         }
  9.     }
Kernel->handle(object(Request)) in public/index.php (line 34)
  1.     Request::setTrustedHosts(explode(','$trustedHosts));
  2. }
  3. $kernel = new Kernel($_SERVER['APP_ENV'] ?? 'dev'$_SERVER['APP_DEBUG'] ?? ('prod' !== ($_SERVER['APP_ENV'] ?? 'dev')));
  4. $request Request::createFromGlobals();
  5. $response $kernel->handle($request);
  6. $response->send();
  7. $kernel->terminate($request$response);

Stack Trace

TypeError

TypeError:
Return value of Limenius\ReactRenderer\Twig\ReactRenderExtension::jsonDecode() must be of the type array, object returned

  at vendor/limenius/react-renderer/src/Limenius/ReactRenderer/Twig/ReactRenderExtension.php:272
  at Limenius\ReactRenderer\Twig\ReactRenderExtension->jsonDecode('{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}')
     (vendor/limenius/react-renderer/src/Limenius/ReactRenderer/Twig/ReactRenderExtension.php:64)
  at Limenius\ReactRenderer\Twig\ReactRenderExtension->reactRenderComponentArray('RecipesApp', array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}'))
     (var/cache/dev/twig/18/187eeb131de98071a99eb90a14850836e02f5cfd9537cc21d3e484d602380acf.php:46)
  at __TwigTemplate_4c124a15e96bfdf1d9fab0965b5e539b8a3166b523242ba94b46863dcbb554ca->doDisplay(array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}', 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_4c124a15e96bfdf1d9fab0965b5e539b8a3166b523242ba94b46863dcbb554ca), 'block_title'), 'body' => array(object(__TwigTemplate_4c124a15e96bfdf1d9fab0965b5e539b8a3166b523242ba94b46863dcbb554ca), 'block_body')))
     (vendor/twig/twig/src/Template.php:407)
  at Twig\Template->displayWithErrorHandling(array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}', 'app' => object(AppVariable)), array('title' => array(object(__TwigTemplate_4c124a15e96bfdf1d9fab0965b5e539b8a3166b523242ba94b46863dcbb554ca), 'block_title'), 'body' => array(object(__TwigTemplate_4c124a15e96bfdf1d9fab0965b5e539b8a3166b523242ba94b46863dcbb554ca), 'block_body')))
     (vendor/twig/twig/src/Template.php:380)
  at Twig\Template->display(array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}'))
     (vendor/twig/twig/src/Template.php:392)
  at Twig\Template->render(array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}'), array())
     (vendor/twig/twig/src/TemplateWrapper.php:45)
  at Twig\TemplateWrapper->render(array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}'))
     (vendor/twig/twig/src/Environment.php:318)
  at Twig\Environment->render('recipe/recipe.html.twig', array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}'))
     (vendor/symfony/framework-bundle/Controller/ControllerTrait.php:234)
  at Symfony\Bundle\FrameworkBundle\Controller\Controller->render('recipe/recipe.html.twig', array('props' => '{"recipe":{"id":1,"name":"Paella","image":"paella.jpg","description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur consequat efficitur venenatis. Proin eros nisl, maximus id tristique et, placerat a felis. Integer finibus lacinia pretium. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla ipsum libero, fringilla id mollis molestie, maximus quis lectus. Sed euismod, risus interdum mattis rhoncus, lectus sem lacinia eros, eu gravida sapien nunc eu risus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Cras ultrices nunc eget congue viverra. Nulla finibus metus mi, in porttitor neque laoreet quis. Proin ut lacinia felis, sit amet mollis ligula. In tincidunt posuere volutpat. Morbi aliquet nunc dolor, ut consequat lacus maximus vitae. Donec orci sem, interdum quis scelerisque et, tincidunt ut nibh. Vivamus bibendum suscipit urna, et rutrum felis suscipit non."}}'))
     (src/Controller/RecipeController.php:45)
  at App\Controller\RecipeController->recipeAction('1', object(Request))
     (vendor/symfony/http-kernel/HttpKernel.php:158)
  at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
     (vendor/symfony/http-kernel/HttpKernel.php:80)
  at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
     (vendor/symfony/http-kernel/Kernel.php:201)
  at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
     (public/index.php:34)