Commit 7e12bbd5 authored by Fabien Potencier's avatar Fabien Potencier

fixed Twig provider on Symfony 3.4

parent b0a2d143
......@@ -27,6 +27,8 @@ use Symfony\Bridge\Twig\Extension\WebLinkExtension;
use Symfony\Bridge\Twig\Form\TwigRendererEngine;
use Symfony\Bridge\Twig\Form\TwigRenderer;
use Symfony\Bridge\Twig\Extension\HttpKernelRuntime;
use Symfony\Component\Form\FormRenderer;
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\WebLink\HttpHeaderSerializer;
/**
......@@ -126,7 +128,11 @@ class TwigServiceProvider implements ServiceProviderInterface
$app['twig.form.renderer'] = function ($app) {
$csrfTokenManager = isset($app['csrf.token_manager']) ? $app['csrf.token_manager'] : null;
return new TwigRenderer($app['twig.form.engine'], $csrfTokenManager);
if (Kernel::VERSION_ID < 30400) {
return new TwigRenderer($app['twig.form.engine'], $csrfTokenManager);
}
return new FormRenderer($app['twig.form.engine'], $csrfTokenManager);
};
$twig->addExtension(new FormExtension(class_exists(HttpKernelRuntime::class) ? null : $app['twig.form.renderer']));
......@@ -186,10 +192,17 @@ class TwigServiceProvider implements ServiceProviderInterface
};
$app['twig.runtimes'] = function ($app) {
return [
$runtimes = [
HttpKernelRuntime::class => 'twig.runtime.httpkernel',
TwigRenderer::class => 'twig.form.renderer',
];
if (Kernel::VERSION_ID < 30400) {
$runtimes[TwigRenderer::class] = 'twig.form.renderer';
} else {
$runtimes[FormRenderer::class] = 'twig.form.renderer';
}
return $runtimes;
};
$app['twig.runtime_loader'] = function ($app) {
......
......@@ -20,6 +20,7 @@ use Silex\Provider\TwigServiceProvider;
use Silex\Provider\AssetServiceProvider;
use Symfony\Bridge\Twig\Extension\WebLinkExtension;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Kernel;
use Symfony\Component\WebLink\HttpHeaderSerializer;
/**
......@@ -109,9 +110,13 @@ class TwigServiceProviderTest extends TestCase
$app->register(new CsrfServiceProvider());
$app->register(new TwigServiceProvider());
$this->assertInstanceOf('Twig_Environment', $app['twig'], 'Service twig is created successful.');
$this->assertInstanceOf('Symfony\Bridge\Twig\Form\TwigRendererEngine', $app['twig.form.engine'], 'Service twig.form.engine is created successful.');
$this->assertInstanceOf('Symfony\Bridge\Twig\Form\TwigRenderer', $app['twig.form.renderer'], 'Service twig.form.renderer is created successful.');
$this->assertInstanceOf('Twig_Environment', $app['twig']);
$this->assertInstanceOf('Symfony\Bridge\Twig\Form\TwigRendererEngine', $app['twig.form.engine']);
if (Kernel::VERSION_ID < 30400) {
$this->assertInstanceOf('Symfony\Bridge\Twig\Form\TwigRenderer', $app['twig.form.renderer']);
} else {
$this->assertInstanceOf('Symfony\Component\Form\FormRenderer', $app['twig.form.renderer']);
}
}
public function testFormWithoutCsrf()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment