@@ -73,9 +73,11 @@ protected function loadMappingInformation(array $objectManager, ContainerBuilder
7373
7474if ($ mappingConfig ['is_bundle ' ]) {
7575$ bundle =null ;
76+ $ bundleMetadata =null ;
7677foreach ($ container ->getParameter ('kernel.bundles ' )as $ name =>$ class ) {
7778if ($ mappingName ===$ name ) {
7879$ bundle =new \ReflectionClass ($ class );
80+ $ bundleMetadata =$ container ->getParameter ('kernel.bundles_metadata ' )[$ name ];
7981
8082break ;
8183 }
@@ -85,7 +87,7 @@ protected function loadMappingInformation(array $objectManager, ContainerBuilder
8587throw new \InvalidArgumentException (sprintf ('Bundle "%s" does not exist or it is not enabled. ' ,$ mappingName ));
8688 }
8789
88- $ mappingConfig =$ this ->getMappingDriverBundleConfigDefaults ($ mappingConfig ,$ bundle ,$ container );
90+ $ mappingConfig =$ this ->getMappingDriverBundleConfigDefaults ($ mappingConfig ,$ bundle ,$ container, $ bundleMetadata [ ' path ' ] );
8991if (!$ mappingConfig ) {
9092continue ;
9193 }
@@ -133,11 +135,21 @@ protected function setMappingDriverConfig(array $mappingConfig, string $mappingN
133135 *
134136 * Returns false when autodetection failed, an array of the completed information otherwise.
135137 *
138+ * @param string $bundleDir The bundle directory path
139+ *
136140 * @return array|false
137141 */
138- protected function getMappingDriverBundleConfigDefaults (array $ bundleConfig ,\ReflectionClass $ bundle ,ContainerBuilder $ container )
142+ protected function getMappingDriverBundleConfigDefaults (array $ bundleConfig ,\ReflectionClass $ bundle ,ContainerBuilder $ container/* , string $bundleDir = null */ )
139143 {
140- $ bundleDir =\dirname ($ bundle ->getFileName ());
144+ $ args =\func_get_args ();
145+
146+ if (\func_num_args () <4 ) {
147+ trigger_deprecation ('symfony/doctrine-bridge ' ,'5.4 ' ,'The "%s()" method will have a new "string $bundleDir = null" argument in version 6.0, not defining it is deprecated. ' ,__METHOD__ );
148+
149+ $ bundleDir =\dirname ($ bundle ->getFileName ());
150+ }else {
151+ $ bundleDir =$ args [3 ];
152+ }
141153
142154if (!$ bundleConfig ['type ' ]) {
143155$ bundleConfig ['type ' ] =$ this ->detectMetadataDriver ($ bundleDir ,$ container );
@@ -152,7 +164,7 @@ protected function getMappingDriverBundleConfigDefaults(array $bundleConfig, \Re
152164if (\in_array ($ bundleConfig ['type ' ], ['annotation ' ,'staticphp ' ,'attribute ' ])) {
153165$ bundleConfig ['dir ' ] =$ bundleDir .'/ ' .$ this ->getMappingObjectDefaultName ();
154166 }else {
155- $ bundleConfig ['dir ' ] =$ bundleDir .'/ ' .$ this ->getMappingResourceConfigDirectory ();
167+ $ bundleConfig ['dir ' ] =$ bundleDir .'/ ' .$ this ->getMappingResourceConfigDirectory ($ bundleDir );
156168 }
157169 }else {
158170$ bundleConfig ['dir ' ] =$ bundleDir .'/ ' .$ bundleConfig ['dir ' ];
@@ -440,9 +452,11 @@ abstract protected function getMappingObjectDefaultName();
440452/**
441453 * Relative path from the bundle root to the directory where mapping files reside.
442454 *
455+ * @param string $bundleDir The bundle directory path
456+ *
443457 * @return string
444458 */
445- abstract protected function getMappingResourceConfigDirectory ();
459+ abstract protected function getMappingResourceConfigDirectory (/* string $bundleDir = null */ );
446460
447461/**
448462 * Extension used by the mapping files.