Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Sign in
Toggle navigation
S
Silex
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
common
Silex
Commits
7e12bbd5
Commit
7e12bbd5
authored
Feb 25, 2018
by
Fabien Potencier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed Twig provider on Symfony 3.4
parent
b0a2d143
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
6 deletions
+24
-6
src/Silex/Provider/TwigServiceProvider.php
src/Silex/Provider/TwigServiceProvider.php
+16
-3
tests/Silex/Tests/Provider/TwigServiceProviderTest.php
tests/Silex/Tests/Provider/TwigServiceProviderTest.php
+8
-3
No files found.
src/Silex/Provider/TwigServiceProvider.php
View file @
7e12bbd5
...
@@ -27,6 +27,8 @@ use Symfony\Bridge\Twig\Extension\WebLinkExtension;
...
@@ -27,6 +27,8 @@ use Symfony\Bridge\Twig\Extension\WebLinkExtension;
use
Symfony\Bridge\Twig\Form\TwigRendererEngine
;
use
Symfony\Bridge\Twig\Form\TwigRendererEngine
;
use
Symfony\Bridge\Twig\Form\TwigRenderer
;
use
Symfony\Bridge\Twig\Form\TwigRenderer
;
use
Symfony\Bridge\Twig\Extension\HttpKernelRuntime
;
use
Symfony\Bridge\Twig\Extension\HttpKernelRuntime
;
use
Symfony\Component\Form\FormRenderer
;
use
Symfony\Component\HttpKernel\Kernel
;
use
Symfony\Component\WebLink\HttpHeaderSerializer
;
use
Symfony\Component\WebLink\HttpHeaderSerializer
;
/**
/**
...
@@ -126,7 +128,11 @@ class TwigServiceProvider implements ServiceProviderInterface
...
@@ -126,7 +128,11 @@ class TwigServiceProvider implements ServiceProviderInterface
$app
[
'twig.form.renderer'
]
=
function
(
$app
)
{
$app
[
'twig.form.renderer'
]
=
function
(
$app
)
{
$csrfTokenManager
=
isset
(
$app
[
'csrf.token_manager'
])
?
$app
[
'csrf.token_manager'
]
:
null
;
$csrfTokenManager
=
isset
(
$app
[
'csrf.token_manager'
])
?
$app
[
'csrf.token_manager'
]
:
null
;
if
(
Kernel
::
VERSION_ID
<
30400
)
{
return
new
TwigRenderer
(
$app
[
'twig.form.engine'
],
$csrfTokenManager
);
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'
]));
$twig
->
addExtension
(
new
FormExtension
(
class_exists
(
HttpKernelRuntime
::
class
)
?
null
:
$app
[
'twig.form.renderer'
]));
...
@@ -186,10 +192,17 @@ class TwigServiceProvider implements ServiceProviderInterface
...
@@ -186,10 +192,17 @@ class TwigServiceProvider implements ServiceProviderInterface
};
};
$app
[
'twig.runtimes'
]
=
function
(
$app
)
{
$app
[
'twig.runtimes'
]
=
function
(
$app
)
{
return
[
$runtimes
=
[
HttpKernelRuntime
::
class
=>
'twig.runtime.httpkernel'
,
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
)
{
$app
[
'twig.runtime_loader'
]
=
function
(
$app
)
{
...
...
tests/Silex/Tests/Provider/TwigServiceProviderTest.php
View file @
7e12bbd5
...
@@ -20,6 +20,7 @@ use Silex\Provider\TwigServiceProvider;
...
@@ -20,6 +20,7 @@ use Silex\Provider\TwigServiceProvider;
use
Silex\Provider\AssetServiceProvider
;
use
Silex\Provider\AssetServiceProvider
;
use
Symfony\Bridge\Twig\Extension\WebLinkExtension
;
use
Symfony\Bridge\Twig\Extension\WebLinkExtension
;
use
Symfony\Component\HttpFoundation\Request
;
use
Symfony\Component\HttpFoundation\Request
;
use
Symfony\Component\HttpKernel\Kernel
;
use
Symfony\Component\WebLink\HttpHeaderSerializer
;
use
Symfony\Component\WebLink\HttpHeaderSerializer
;
/**
/**
...
@@ -109,9 +110,13 @@ class TwigServiceProviderTest extends TestCase
...
@@ -109,9 +110,13 @@ class TwigServiceProviderTest extends TestCase
$app
->
register
(
new
CsrfServiceProvider
());
$app
->
register
(
new
CsrfServiceProvider
());
$app
->
register
(
new
TwigServiceProvider
());
$app
->
register
(
new
TwigServiceProvider
());
$this
->
assertInstanceOf
(
'Twig_Environment'
,
$app
[
'twig'
],
'Service twig is created successful.'
);
$this
->
assertInstanceOf
(
'Twig_Environment'
,
$app
[
'twig'
]);
$this
->
assertInstanceOf
(
'Symfony\Bridge\Twig\Form\TwigRendererEngine'
,
$app
[
'twig.form.engine'
],
'Service twig.form.engine is created successful.'
);
$this
->
assertInstanceOf
(
'Symfony\Bridge\Twig\Form\TwigRendererEngine'
,
$app
[
'twig.form.engine'
]);
$this
->
assertInstanceOf
(
'Symfony\Bridge\Twig\Form\TwigRenderer'
,
$app
[
'twig.form.renderer'
],
'Service twig.form.renderer is created successful.'
);
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
()
public
function
testFormWithoutCsrf
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment