Skip to content

Commit c1dfb4d

Browse files
committed
minor symfony#24922 [DI] Friendlier name for generated container in "as_files" mode (nicolas-grekas)
This PR was merged into the 3.4 branch. Discussion ---------- [DI] Friendlier name for generated container in "as_files" mode | Q | A | ------------- | --- | Branch? | 3.4 | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - Noticed while looking at Blackfire profiles of a 3.4 app. Gives friendlier profiles/stack traces. Commits ------- 7db5d40 [DI] Friendlier name for generated container in "as_files" mode
2 parents c53e8a8 + 7db5d40 commit c1dfb4d

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -188,31 +188,31 @@ public function dump(array $options = array())
188188
foreach ($this->generateProxyClasses() as $file => $c) {
189189
$files[$file] = "<?php\n".$c;
190190
}
191-
$files['Container.php'] = $code;
191+
$files[$options['class'].'.php'] = $code;
192192
$hash = ucfirst(strtr(ContainerBuilder::hash($files), '._', 'xx'));
193193
$code = array();
194194

195195
foreach ($files as $file => $c) {
196196
$code["Container{$hash}/{$file}"] = $c;
197197
}
198198
array_pop($code);
199-
$code["Container{$hash}/Container.php"] = implode("\nclass Container{$hash}", explode("\nclass {$options['class']}", $files['Container.php'], 2));
199+
$code["Container{$hash}/{$options['class']}.php"] = substr_replace($files[$options['class'].'.php'], "<?php\n\nnamespace Container{$hash};\n", 0, 6);
200200
$namespaceLine = $this->namespace ? "\nnamespace {$this->namespace};\n" : '';
201201

202202
$code[$options['class'].'.php'] = <<<EOF
203203
<?php
204204
{$namespaceLine}
205205
// This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
206206
207-
if (!class_exists(Container{$hash}::class, false)) {
208-
require __DIR__.'/Container{$hash}/Container.php';
207+
if (!class_exists(\\Container{$hash}\\{$options['class']}::class, false)) {
208+
require __DIR__.'/Container{$hash}/{$options['class']}.php';
209209
}
210210
211211
if (!class_exists({$options['class']}::class, false)) {
212-
class_alias(Container{$hash}::class, {$options['class']}::class, false);
212+
class_alias(\\Container{$hash}\\{$options['class']}::class, {$options['class']}::class, false);
213213
}
214214
215-
return new Container{$hash}();
215+
return new \\Container{$hash}\\{$options['class']}();
216216
217217
EOF;
218218
} else {
@@ -908,7 +908,7 @@ private function addNewInstance(Definition $definition, $return, $instantiation,
908908
private function startClass($class, $baseClass)
909909
{
910910
$bagClass = $this->container->isCompiled() ? 'use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;' : 'use Symfony\Component\DependencyInjection\ParameterBag\\ParameterBag;';
911-
$namespaceLine = $this->namespace ? "\nnamespace {$this->namespace};\n" : '';
911+
$namespaceLine = !$this->asFiles && $this->namespace ? "\nnamespace {$this->namespace};\n" : '';
912912

913913
$code = <<<EOF
914914
<?php

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,9 @@ use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
276276

277277
return $this->services['tagged_iterator_foo'] = new \Bar();
278278

279-
[Container%s/Container.php] => <?php
279+
[Container%s/ProjectServiceContainer.php] => <?php
280+
281+
namespace Container%s;
280282

281283
use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
282284
use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -292,7 +294,7 @@ use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;
292294
*
293295
* @final since Symfony 3.3
294296
*/
295-
class Container%s extends Container
297+
class ProjectServiceContainer extends Container
296298
{
297299
private $parameters;
298300
private $targetDirs = array();
@@ -495,14 +497,14 @@ class Container%s extends Container
495497

496498
// This file has been auto-generated by the Symfony Dependency Injection Component for internal use.
497499

498-
if (!class_exists(Container%s::class, false)) {
499-
require __DIR__.'/Container%s/Container.php';
500+
if (!class_exists(\Container%s\ProjectServiceContainer::class, false)) {
501+
require __DIR__.'/Container%s/ProjectServiceContainer.php';
500502
}
501503

502504
if (!class_exists(ProjectServiceContainer::class, false)) {
503-
class_alias(Container%s::class, ProjectServiceContainer::class, false);
505+
class_alias(\Container%s\ProjectServiceContainer::class, ProjectServiceContainer::class, false);
504506
}
505507

506-
return new Container%s();
508+
return new \Container%s\ProjectServiceContainer();
507509

508510
)

0 commit comments

Comments
 (0)