diff --git a/DependencyInjection/MarkupAddressingExtension.php b/DependencyInjection/MarkupAddressingExtension.php index 8edf1e9..49ac562 100644 --- a/DependencyInjection/MarkupAddressingExtension.php +++ b/DependencyInjection/MarkupAddressingExtension.php @@ -4,8 +4,10 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\Config\FileLocator; +use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\HttpKernel\DependencyInjection\Extension; use Symfony\Component\DependencyInjection\Loader; +use Symfony\Component\HttpKernel\Kernel; /** * This is the class that loads and manages your bundle configuration @@ -28,6 +30,7 @@ public function load(array $configs, ContainerBuilder $container) $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.yml'); + $this->setSharedServices($container); $this->loadCountryPostalCodeOverrides($config, $container); } @@ -61,4 +64,18 @@ private function loadRequireStrictRegions(array $config, ContainerBuilder $conta { $container->setParameter('markup_addressing.require_strict_regions', $config['require_strict_regions']); } + + private function setSharedServices(ContainerBuilder $container) + { + $sharedServiceIds = ['markup_addressing.twig.internal']; + $isLegacy = version_compare(Kernel::VERSION, '2.8', '<'); + foreach ($sharedServiceIds as $sharedServiceId) { + $definition = $container->getDefinition($sharedServiceId); + if (!$isLegacy) { + $definition->setShared(true); + } else { + $definition->setScope(ContainerInterface::SCOPE_PROTOTYPE, false); + } + } + } } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 439182e..ef776af 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -64,7 +64,6 @@ services: - [] calls: - [ addExtension, [ '@markup_addressing.country_name.extension' ] ] - scope: prototype markup_addressing.twig.provider: class: 'Markup\Addressing\Provider\KeyedEnvironmentServiceProvider' arguments: