@@ -73,9 +73,11 @@ protected function loadMappingInformation(array $objectManager, ContainerBuilder
73
73
74
74
if ($ mappingConfig ['is_bundle ' ]) {
75
75
$ bundle = null ;
76
+ $ bundleMetadata = null ;
76
77
foreach ($ container ->getParameter ('kernel.bundles ' ) as $ name => $ class ) {
77
78
if ($ mappingName === $ name ) {
78
79
$ bundle = new \ReflectionClass ($ class );
80
+ $ bundleMetadata = $ container ->getParameter ('kernel.bundles_metadata ' )[$ name ];
79
81
80
82
break ;
81
83
}
@@ -85,7 +87,7 @@ protected function loadMappingInformation(array $objectManager, ContainerBuilder
85
87
throw new \InvalidArgumentException (sprintf ('Bundle "%s" does not exist or it is not enabled. ' , $ mappingName ));
86
88
}
87
89
88
- $ mappingConfig = $ this ->getMappingDriverBundleConfigDefaults ($ mappingConfig , $ bundle , $ container );
90
+ $ mappingConfig = $ this ->getMappingDriverBundleConfigDefaults ($ mappingConfig , $ bundle , $ container, $ bundleMetadata [ ' path ' ] );
89
91
if (!$ mappingConfig ) {
90
92
continue ;
91
93
}
@@ -133,11 +135,21 @@ protected function setMappingDriverConfig(array $mappingConfig, string $mappingN
133
135
*
134
136
* Returns false when autodetection failed, an array of the completed information otherwise.
135
137
*
138
+ * @param string $bundleDir The bundle directory path
139
+ *
136
140
* @return array|false
137
141
*/
138
- protected function getMappingDriverBundleConfigDefaults (array $ bundleConfig , \ReflectionClass $ bundle , ContainerBuilder $ container )
142
+ protected function getMappingDriverBundleConfigDefaults (array $ bundleConfig , \ReflectionClass $ bundle , ContainerBuilder $ container/* , string $bundleDir = null */ )
139
143
{
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
+ }
141
153
142
154
if (!$ bundleConfig ['type ' ]) {
143
155
$ bundleConfig ['type ' ] = $ this ->detectMetadataDriver ($ bundleDir , $ container );
@@ -152,7 +164,7 @@ protected function getMappingDriverBundleConfigDefaults(array $bundleConfig, \Re
152
164
if (\in_array ($ bundleConfig ['type ' ], ['annotation ' , 'staticphp ' , 'attribute ' ])) {
153
165
$ bundleConfig ['dir ' ] = $ bundleDir .'/ ' .$ this ->getMappingObjectDefaultName ();
154
166
} else {
155
- $ bundleConfig ['dir ' ] = $ bundleDir .'/ ' .$ this ->getMappingResourceConfigDirectory ();
167
+ $ bundleConfig ['dir ' ] = $ bundleDir .'/ ' .$ this ->getMappingResourceConfigDirectory ($ bundleDir );
156
168
}
157
169
} else {
158
170
$ bundleConfig ['dir ' ] = $ bundleDir .'/ ' .$ bundleConfig ['dir ' ];
@@ -440,9 +452,11 @@ abstract protected function getMappingObjectDefaultName();
440
6D40
452
/**
441
453
* Relative path from the bundle root to the directory where mapping files reside.
442
454
*
455
+ * @param string $bundleDir The bundle directory path
456
+ *
443
457
* @return string
444
458
*/
445
- abstract protected function getMappingResourceConfigDirectory ();
459
+ abstract protected function getMappingResourceConfigDirectory (/* string $bundleDir = null */ );
446
460
447
461
/**
448
462
* Extension used by the mapping files.
0 commit comments