@@ -38,6 +38,11 @@ class FrameworkExtension extends Extension
38
38
private $ translationConfigEnabled = false ;
39
39
private $ sessionConfigEnabled = false ;
40
40
41
+ /**
42
+ * @var string|null
43
+ */
44
+ private $ kernelRootHash ;
45
+
41
46
/**
42
47
* Responds to the app.config configuration parameter.
43
48
*
@@ -777,7 +782,7 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
777
782
if (isset ($ config ['cache ' ])) {
778
783
$ container ->setParameter (
779
784
'validator.mapping.cache.prefix ' ,
780
- 'validator_ ' .hash ( ' sha256 ' , $ container -> getParameter ( ' kernel.root_dir ' ) )
785
+ 'validator_ ' .$ this -> getKernelRootHash ( $ container )
781
786
);
782
787
783
788
$ validatorBuilder ->addMethodCall ('setMetadataCache ' , array (new Reference ($ config ['cache ' ])));
@@ -959,7 +964,7 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
959
964
if (isset ($ config ['cache ' ]) && $ config ['cache ' ]) {
960
965
$ container ->setParameter (
961
966
'serializer.mapping.cache.prefix ' ,
962
- 'serializer_ ' .hash ( ' sha256 ' , $ container -> getParameter ( ' kernel.root_dir ' ) )
967
+ 'serializer_ ' .$ this -> getKernelRootHash ( $ container )
963
968
);
964
969
965
970
$ container ->getDefinition ('serializer.mapping.class_metadata_factory ' )->replaceArgument (
@@ -968,6 +973,22 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
968
973
}
969
974
}
970
975
976
+ /**
977
+ * Gets a hash of the kernel root directory.
978
+ *
979
+ * @param ContainerBuilder $container
980
+ *
981
+ * @return string
982
+ */
983
+ private function getKernelRootHash (ContainerBuilder $ container )
984
+ {
985
+ if (!$ this ->kernelRootHash ) {
986
+ $ this ->kernelRootHash = hash ('sha256 ' , $ container ->getParameter ('kernel.root_dir ' ));
987
+ }
988
+
989
+ return $ this ->kernelRootHash ;
990
+ }
991
+
971
992
/**
972
993
* Returns the base path for the XSD files.
973
994
*
0 commit comments