diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index e6e1f46..eec87c8 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -35,6 +35,11 @@ public function getConfigTreeBuilder() ->cannotBeEmpty() ->defaultValue('twig_cache.strategy') ->end() + ->scalarNode('key_generator') + ->cannotBeEmpty() + ->defaultValue('twig_cache.strategy.spl_object_hash_key_generator') + ->info('service id that implements KeyGeneratorInterface to generate a key for template cache') + ->end() ->end(); return $treeBuilder; diff --git a/DependencyInjection/TwigCacheExtension.php b/DependencyInjection/TwigCacheExtension.php index 79475a5..f197513 100644 --- a/DependencyInjection/TwigCacheExtension.php +++ b/DependencyInjection/TwigCacheExtension.php @@ -31,6 +31,7 @@ public function load(array $config, ContainerBuilder $container) $config = $this->processConfiguration($configuration, $config); $container->setAlias('twig_cache.service', $config['service']); + $container->setAlias('twig_cache.strategy.key_generator', $config['key_generator']); $loader = new Loader\XmlFileLoader( $container, diff --git a/Resources/config/services.xml b/Resources/config/services.xml index 5c7d532..8d79aa5 100644 --- a/Resources/config/services.xml +++ b/Resources/config/services.xml @@ -25,7 +25,7 @@ - + diff --git a/Resources/doc/configuration-reference.rst b/Resources/doc/configuration-reference.rst index c04d3ff..4268b85 100644 --- a/Resources/doc/configuration-reference.rst +++ b/Resources/doc/configuration-reference.rst @@ -7,4 +7,5 @@ Default Bundle Configuration twig_cache: profiler: '%kernel.debug%' service: # required - strategy: twig_cache.strategy \ No newline at end of file + strategy: twig_cache.strategy + key_generator: twig_cache.strategy.spl_object_hash_key_generator diff --git a/Tests/DependencyInjection/TwigCacheExtensionTest.php b/Tests/DependencyInjection/TwigCacheExtensionTest.php index 2ca074b..a7e17fa 100644 --- a/Tests/DependencyInjection/TwigCacheExtensionTest.php +++ b/Tests/DependencyInjection/TwigCacheExtensionTest.php @@ -42,6 +42,7 @@ public function testService() { $this->assertContainerBuilderHasService('twig_cache.extension'); $this->assertContainerBuilderHasService('twig_cache.service'); + $this->assertContainerBuilderHasService('twig_cache.strategy.key_generator'); } /**