Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 29ce7be

Browse files
[DI] Fix dumping with custom base class
1 parent e2ad892 commit 29ce7be

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ public function dump(array $options = array())
114114
$this->inlinedRequires = array();
115115
$options = array_merge(array(
116116
'class' => 'ProjectServiceContainer',
117-
'base_class' => 'Container',
117+
'base_class' => null,
118118
'namespace' => '',
119119
'as_files' => false,
120120
'debug' => true,
@@ -126,7 +126,14 @@ public function dump(array $options = array())
126126
$this->asFiles = $options['as_files'];
127127
$this->hotPathTag = $options['hot_path_tag'];
128128
$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);
130137

131138
$this->docStar = $options['debug'] ? '*' : '';
132139

@@ -156,7 +163,7 @@ public function dump(array $options = array())
156163
}
157164

158165
$code =
159-
$this->startClass($options['class'], $options['base_class']).
166+
$this->startClass($options['class'], $baseClass).
160167
$this->addServices().
161168
$this->addDefaultParametersMethod().
162169
$this->endClass()

0 commit comments

Comments
 (0)