-
Notifications
You must be signed in to change notification settings - Fork 693
Description
After upgrading to Symfony 4.3, it appears impossible to both avoid deprecation notices and use Twig as the default render engine for the ViewHandler class. This message is seen:
An instance of Symfony\Component\Templating\EngineInterface must be injected in
FOS\RestBundle\View\ViewHandler to render templates.
Since the constructor for ViewHandler type hints an EngineInterface , the following configuration will fail because Twig is now an instance of Twig\Environment:
fos_rest:
service:
templating: twig
One workaround is to extend the ViewHandler class and then replace the default implementation, but this seems like an ugly necessity to use things in their (more or less) default setup.
So, either I am missing something, or there needs to be a fix here. My best guess would be to remove the type hint and add a check to see that the injected object is either Twig\Environment or an instance of EngineInterface or null.
I feel like I am missing something, though, since this was not mentioned in the other deprecation fixes. Is there another solution here?