Skip to content

Commit 685ff0e

Browse files
[DI] Fix YamlDumper not dumping abstract and autoconfigure
1 parent 0bcc6bb commit 685ff0e

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,14 @@ private function addService($id, $definition)
116116
$code .= sprintf(" autowiring_types:\n%s", $autowiringTypesCode);
117117
}
118118

119+
if ($definition->isAutoconfigured()) {
120+
$code .= " autoconfigure: true\n";
121+
}
122+
123+
if ($definition->isAbstract()) {
124+
$code .= " abstract: true\n";
125+
}
126+
119127
if ($definition->isLazy()) {
120128
$code .= " lazy: true\n";
121129
}

src/Symfony/Component/DependencyInjection/Tests/Dumper/YamlDumperTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
namespace Symfony\Component\DependencyInjection\Tests\Dumper;
1313

1414
use PHPUnit\Framework\TestCase;
15+
use Symfony\Component\Config\FileLocator;
1516
use Symfony\Component\DependencyInjection\ContainerBuilder;
1617
use Symfony\Component\DependencyInjection\Dumper\YamlDumper;
18+
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
1719
use Symfony\Component\Yaml\Yaml;
1820
use Symfony\Component\Yaml\Parser;
1921

@@ -64,6 +66,16 @@ public function testDumpAutowireData()
6466
$this->assertStringEqualsFile(self::$fixturesPath.'/yaml/services24.yml', $dumper->dump());
6567
}
6668

69+
public function testDumpLoad()
70+
{
71+
$container = new ContainerBuilder();
72+
$loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
73+
$loader->load('services_dump_load.yml');
74+
75+
$dumper = new YamlDumper($container);
76+
$this->assertStringEqualsFile(self::$fixturesPath.'/yaml/services_dump_load.yml', $dumper->dump());
77+
}
78+
6779
private function assertEqualYamlStructure($expected, $yaml, $message = '')
6880
{
6981
$parser = new Parser();
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
services:
3+
service_container:
4+
class: Symfony\Component\DependencyInjection\ContainerInterface
5+
synthetic: true
6+
foo:
7+
autoconfigure: true
8+
abstract: true
9+
Psr\Container\ContainerInterface:
10+
alias: service_container
11+
public: false
12+
Symfony\Component\DependencyInjection\ContainerInterface:
13+
alias: service_container
14+
public: false

0 commit comments

Comments
 (0)