@@ -114,7 +114,7 @@ public function dump(array $options = array())
114
114
$ this ->inlinedRequires = array ();
115
115
$ options = array_merge (array (
116
116
'class ' => 'ProjectServiceContainer ' ,
117
- 'base_class ' => ' Container ' ,
117
+ 'base_class ' => null ,
118
118
'namespace ' => '' ,
119
119
'as_files ' => false ,
120
120
'debug ' => true ,
@@ -126,7 +126,14 @@ public function dump(array $options = array())
126
126
$ this ->asFiles = $ options ['as_files ' ];
127
127
$ this ->hotPathTag = $ options ['hot_path_tag ' ];
128
128
$ this ->inlineRequires = $ this ->container ->hasParameter ($ options ['inline_class_loader_parameter ' ]) && $ this ->container ->getParameter ($ options ['inline_class_loader_parameter ' ]);
129
- $ this ->initializeMethodNamesMap ($ options ['base_class ' ]);
129
+
130
+ if (!$ baseClass = $ options ['base_class ' ]) {
131
+ $ baseClass = 'Container ' ;
132
+ } elseif (0 !== strpos ($ baseClass , '\\' )) {
133
+ $ baseClass = sprintf ('%s\%s ' , $ options ['namespace ' ] ? '\\' .$ options ['namespace ' ] : '' , $ baseClass );
134
+ }
135
+
136
+ $ this ->initializeMethodNamesMap ('Container ' === $ baseClass ? Container::class : $ baseClass );
130
137
131
138
$ this ->docStar = $ options ['debug ' ] ? '* ' : '' ;
132
139
@@ -156,7 +163,7 @@ public function dump(array $options = array())
156
163
}
157
164
158
165
$ code =
159
- $ this ->startClass ($ options ['class ' ], $ options [ ' base_class ' ] ).
166
+ $ this ->startClass ($ options ['class ' ], $ baseClass ).
160
167
$ this ->addServices ().
161
168
$ this ->addDefaultParametersMethod ().
162
169
$ this ->endClass ()
0 commit comments