Merge branch '2.7' into 2.8
* 2.7: do not try to register incomplete definitions
This commit is contained in:
commit
c7f9baf8f4
@ -27,8 +27,14 @@ class ExceptionListenerPass implements CompilerPassInterface
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// register the exception controller only if Twig is enabled
|
if (!interface_exists('Symfony\Component\Templating\TemplateReferenceInterface')) {
|
||||||
if ($container->hasParameter('templating.engines')) {
|
$container->removeDefinition('twig.controller.exception');
|
||||||
|
}
|
||||||
|
|
||||||
|
// register the exception controller only if Twig is enabled and required dependencies do exist
|
||||||
|
if (!class_exists('Symfony\Component\Debug\Exception\FlattenException') || !interface_exists('Symfony\Component\EventDispatcher\EventSubscriberInterface')) {
|
||||||
|
$container->removeDefinition('twig.exception_listener');
|
||||||
|
} elseif ($container->hasParameter('templating.engines')) {
|
||||||
$engines = $container->getParameter('templating.engines');
|
$engines = $container->getParameter('templating.engines');
|
||||||
if (!in_array('twig', $engines)) {
|
if (!in_array('twig', $engines)) {
|
||||||
$container->removeDefinition('twig.exception_listener');
|
$container->removeDefinition('twig.exception_listener');
|
||||||
|
@ -23,6 +23,25 @@ class ExtensionPass implements CompilerPassInterface
|
|||||||
{
|
{
|
||||||
public function process(ContainerBuilder $container)
|
public function process(ContainerBuilder $container)
|
||||||
{
|
{
|
||||||
|
if (!class_exists('Symfony\Component\Asset\Packages')) {
|
||||||
|
$container->removeDefinition('twig.extension.assets');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!class_exists('Symfony\Component\ExpressionLanguage\Expression')) {
|
||||||
|
$container->removeDefinition('twig.extension.expression');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!interface_exists('Symfony\Component\Routing\Generator\UrlGeneratorInterface')) {
|
||||||
|
$container->removeDefinition('twig.extension.routing');
|
||||||
|
}
|
||||||
|
if (!interface_exists('Symfony\Component\Translation\TranslatorInterface')) {
|
||||||
|
$container->removeDefinition('twig.extension.trans');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!class_exists('Symfony\Component\Yaml\Yaml')) {
|
||||||
|
$container->removeDefinition('twig.extension.yaml');
|
||||||
|
}
|
||||||
|
|
||||||
if ($container->has('form.extension')) {
|
if ($container->has('form.extension')) {
|
||||||
$container->getDefinition('twig.extension.form')->addTag('twig.extension');
|
$container->getDefinition('twig.extension.form')->addTag('twig.extension');
|
||||||
$reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension');
|
$reflClass = new \ReflectionClass('Symfony\Bridge\Twig\Extension\FormExtension');
|
||||||
|
@ -37,6 +37,18 @@ class TwigExtension extends Extension
|
|||||||
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
$loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
|
||||||
$loader->load('twig.xml');
|
$loader->load('twig.xml');
|
||||||
|
|
||||||
|
if (class_exists('Symfony\Component\Form\Form')) {
|
||||||
|
$loader->load('form.xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (interface_exists('Symfony\Component\Templating\EngineInterface')) {
|
||||||
|
$loader->load('templating.xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!interface_exists('Symfony\Component\Translation\TranslatorInterface')) {
|
||||||
|
$container->removeDefinition('twig.translation.extractor');
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($configs as $key => $config) {
|
foreach ($configs as $key => $config) {
|
||||||
if (isset($config['globals'])) {
|
if (isset($config['globals'])) {
|
||||||
foreach ($config['globals'] as $name => $value) {
|
foreach ($config['globals'] as $name => $value) {
|
||||||
|
20
src/Symfony/Bundle/TwigBundle/Resources/config/form.xml
Normal file
20
src/Symfony/Bundle/TwigBundle/Resources/config/form.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<container xmlns="http://symfony.com/schema/dic/services"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||||
|
|
||||||
|
<services>
|
||||||
|
<service id="twig.extension.form" class="%twig.extension.form.class%" public="false">
|
||||||
|
<argument type="service" id="twig.form.renderer" />
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<service id="twig.form.engine" class="%twig.form.engine.class%" public="false">
|
||||||
|
<argument>%twig.form.resources%</argument>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<service id="twig.form.renderer" class="%twig.form.renderer.class%" public="false">
|
||||||
|
<argument type="service" id="twig.form.engine" />
|
||||||
|
<argument type="service" id="security.csrf.token_manager" on-invalid="null" />
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
|
</container>
|
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" ?>
|
||||||
|
<container xmlns="http://symfony.com/schema/dic/services"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
|
||||||
|
|
||||||
|
<services>
|
||||||
|
<service id="twig.loader.filesystem" class="%twig.loader.filesystem.class%" public="false">
|
||||||
|
<argument type="service" id="templating.locator" />
|
||||||
|
<argument type="service" id="templating.name_parser" />
|
||||||
|
<tag name="twig.loader"/>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<service id="twig.loader" alias="twig.loader.filesystem" />
|
||||||
|
|
||||||
|
<service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
|
||||||
|
<argument type="service" id="twig" />
|
||||||
|
<argument type="service" id="templating.name_parser" />
|
||||||
|
<argument type="service" id="templating.locator" />
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
|
</container>
|
@ -68,22 +68,8 @@
|
|||||||
<argument type="collection" />
|
<argument type="collection" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="twig.loader.filesystem" class="%twig.loader.filesystem.class%" public="false">
|
|
||||||
<argument type="service" id="templating.locator" />
|
|
||||||
<argument type="service" id="templating.name_parser" />
|
|
||||||
<tag name="twig.loader"/>
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="twig.loader.chain" class="%twig.loader.chain.class%" public="false"/>
|
<service id="twig.loader.chain" class="%twig.loader.chain.class%" public="false"/>
|
||||||
|
|
||||||
<service id="twig.loader" alias="twig.loader.filesystem" />
|
|
||||||
|
|
||||||
<service id="templating.engine.twig" class="%templating.engine.twig.class%" public="false">
|
|
||||||
<argument type="service" id="twig" />
|
|
||||||
<argument type="service" id="templating.name_parser" />
|
|
||||||
<argument type="service" id="templating.locator" />
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="twig.extension.profiler" class="Symfony\Bridge\Twig\Extension\ProfilerExtension" public="false">
|
<service id="twig.extension.profiler" class="Symfony\Bridge\Twig\Extension\ProfilerExtension" public="false">
|
||||||
<argument type="service" id="twig.profile" />
|
<argument type="service" id="twig.profile" />
|
||||||
<argument type="service" id="debug.stopwatch" on-invalid="null" />
|
<argument type="service" id="debug.stopwatch" on-invalid="null" />
|
||||||
@ -143,21 +129,8 @@
|
|||||||
<argument type="service" id="router.request_context" on-invalid="ignore" />
|
<argument type="service" id="router.request_context" on-invalid="ignore" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="twig.extension.form" class="%twig.extension.form.class%" public="false">
|
|
||||||
<argument type="service" id="twig.form.renderer" />
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="twig.extension.debug" class="Twig_Extension_Debug" public="false" />
|
<service id="twig.extension.debug" class="Twig_Extension_Debug" public="false" />
|
||||||
|
|
||||||
<service id="twig.form.engine" class="%twig.form.engine.class%" public="false">
|
|
||||||
<argument>%twig.form.resources%</argument>
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="twig.form.renderer" class="%twig.form.renderer.class%" public="false">
|
|
||||||
<argument type="service" id="twig.form.engine" />
|
|
||||||
<argument type="service" id="security.csrf.token_manager" on-invalid="null" />
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<service id="twig.translation.extractor" class="%twig.translation.extractor.class%">
|
<service id="twig.translation.extractor" class="%twig.translation.extractor.class%">
|
||||||
<argument type="service" id="twig" />
|
<argument type="service" id="twig" />
|
||||||
<tag name="translation.extractor" alias="twig" />
|
<tag name="translation.extractor" alias="twig" />
|
||||||
|
Reference in New Issue
Block a user