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

Skip to content

Commit 340f18e

Browse files
Merge branch '5.4' into 6.3
* 5.4: Dump Valid constaints on debug command #46544 [DependencyInjection] fix dump xml with array/object/enum default value [HttpFoundation] Add a slightly more verbose comment about a warning on UploadedFile [Messenger] BatchHandlerTrait - fix phpdoc typo Remove me from CODEOWNERS Always return bool from messenger amqp conncetion nack [Console] Fix linewraps in OutputFormatter
2 parents 7e9c46d + 3bff6fe commit 340f18e

23 files changed

+385
-121
lines changed

.github/CODEOWNERS

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
# Serializer
3939
/src/Symfony/Component/Serializer/ @dunglas
4040
# Security
41-
/src/Symfony/Bridge/Doctrine/Security/ @wouterj @chalasr
42-
/src/Symfony/Bundle/SecurityBundle/ @wouterj @chalasr
43-
/src/Symfony/Component/Security/ @wouterj @chalasr
44-
/src/Symfony/Component/Ldap/Security/ @wouterj @chalasr
41+
/src/Symfony/Bridge/Doctrine/Security/ @chalasr
42+
/src/Symfony/Bundle/SecurityBundle/ @chalasr
43+
/src/Symfony/Component/Security/ @chalasr
44+
/src/Symfony/Component/Ldap/Security/ @chalasr
4545
# Scheduler
4646
/src/Symfony/Component/Scheduler/ @kbond
4747
# TwigBundle

src/Symfony/Component/Console/Formatter/OutputFormatter.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
use Symfony\Component\Console\Exception\InvalidArgumentException;
1515

16+
use function Symfony\Component\String\b;
17+
1618
/**
1719
* Formatter class for console output.
1820
*
@@ -241,7 +243,7 @@ private function applyCurrentStyle(string $text, string $current, int $width, in
241243
}
242244

243245
preg_match('~(\\n)$~', $text, $matches);
244-
$text = $prefix.preg_replace('~([^\\n]{'.$width.'})\\ *~', "\$1\n", $text);
246+
$text = $prefix.$this->addLineBreaks($text, $width);
245247
$text = rtrim($text, "\n").($matches[1] ?? '');
246248

247249
if (!$currentLineLength && '' !== $current && !str_ends_with($current, "\n")) {
@@ -265,4 +267,11 @@ private function applyCurrentStyle(string $text, string $current, int $width, in
265267

266268
return implode("\n", $lines);
267269
}
270+
271+
private function addLineBreaks(string $text, int $width): string
272+
{
273+
$encoding = mb_detect_encoding($text, null, true) ?: 'UTF-8';
274+
275+
return b($text)->toCodePointString($encoding)->wordwrap($width, "\n", true)->toByteString($encoding);
276+
}
268277
}

src/Symfony/Component/Console/Tests/Formatter/OutputFormatterTest.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -358,21 +358,23 @@ public function testFormatAndWrap()
358358
$formatter = new OutputFormatter(true);
359359

360360
$this->assertSame("fo\no\e[37;41mb\e[39;49m\n\e[37;41mar\e[39;49m\nba\nz", $formatter->formatAndWrap('foo<error>bar</error> baz', 2));
361-
$this->assertSame("pr\ne \e[37;41m\e[39;49m\n\e[37;41mfo\e[39;49m\n\e[37;41mo \e[39;49m\n\e[37;41mba\e[39;49m\n\e[37;41mr \e[39;49m\n\e[37;41mba\e[39;49m\n\e[37;41mz\e[39;49m \npo\nst", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 2));
361+
$this->assertSame("pr\ne \e[37;41m\e[39;49m\n\e[37;41mfo\e[39;49m\n\e[37;41mo\e[39;49m\n\e[37;41mba\e[39;49m\n\e[37;41mr\e[39;49m\n\e[37;41mba\e[39;49m\n\e[37;41mz\e[39;49m \npo\nst", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 2));
362362
$this->assertSame("pre\e[37;41m\e[39;49m\n\e[37;41mfoo\e[39;49m\n\e[37;41mbar\e[39;49m\n\e[37;41mbaz\e[39;49m\npos\nt", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 3));
363-
$this->assertSame("pre \e[37;41m\e[39;49m\n\e[37;41mfoo \e[39;49m\n\e[37;41mbar \e[39;49m\n\e[37;41mbaz\e[39;49m \npost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 4));
364-
$this->assertSame("pre \e[37;41mf\e[39;49m\n\e[37;41moo ba\e[39;49m\n\e[37;41mr baz\e[39;49m\npost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 5));
363+
$this->assertSame("pre \e[37;41m\e[39;49m\n\e[37;41mfoo\e[39;49m\n\e[37;41mbar\e[39;49m\n\e[37;41mbaz\e[39;49m \npost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 4));
364+
$this->assertSame("pre \e[37;41mf\e[39;49m\n\e[37;41moo\e[39;49m\n\e[37;41mbar\e[39;49m\n\e[37;41mbaz\e[39;49m p\nost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 5));
365365
$this->assertSame("Lore\nm \e[37;41mip\e[39;49m\n\e[37;41msum\e[39;49m \ndolo\nr \e[32msi\e[39m\n\e[32mt\e[39m am\net", $formatter->formatAndWrap('Lorem <error>ipsum</error> dolor <info>sit</info> amet', 4));
366366
$this->assertSame("Lorem \e[37;41mip\e[39;49m\n\e[37;41msum\e[39;49m dolo\nr \e[32msit\e[39m am\net", $formatter->formatAndWrap('Lorem <error>ipsum</error> dolor <info>sit</info> amet', 8));
367367
$this->assertSame("Lorem \e[37;41mipsum\e[39;49m dolor \e[32m\e[39m\n\e[32msit\e[39m, \e[37;41mamet\e[39;49m et \e[32mlauda\e[39m\n\e[32mntium\e[39m architecto", $formatter->formatAndWrap('Lorem <error>ipsum</error> dolor <info>sit</info>, <error>amet</error> et <info>laudantium</info> architecto', 18));
368368

369369
$formatter = new OutputFormatter();
370370

371371
$this->assertSame("fo\nob\nar\nba\nz", $formatter->formatAndWrap('foo<error>bar</error> baz', 2));
372-
$this->assertSame("pr\ne \nfo\no \nba\nr \nba\nz \npo\nst", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 2));
372+
$this->assertSame("pr\ne \nfo\no\nba\nr\nba\nz \npo\nst", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 2));
373373
$this->assertSame("pre\nfoo\nbar\nbaz\npos\nt", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 3));
374-
$this->assertSame("pre \nfoo \nbar \nbaz \npost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 4));
375-
$this->assertSame("pre f\noo ba\nr baz\npost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 5));
374+
$this->assertSame("pre \nfoo\nbar\nbaz \npost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 4));
375+
$this->assertSame("pre f\noo\nbar\nbaz p\nost", $formatter->formatAndWrap('pre <error>foo bar baz</error> post', 5));
376+
$this->assertSame("Â rèälly\nlöng tîtlè\nthät cöüld\nnèêd\nmúltîplê\nlínès", $formatter->formatAndWrap('Â rèälly löng tîtlè thät cöüld nèêd múltîplê línès', 10));
377+
$this->assertSame("Â rèälly\nlöng tîtlè\nthät cöüld\nnèêd\nmúltîplê\n línès", $formatter->formatAndWrap("Â rèälly löng tîtlè thät cöüld nèêd múltîplê\n línès", 10));
376378
$this->assertSame('', $formatter->formatAndWrap(null, 5));
377379
}
378380
}

src/Symfony/Component/Console/Tests/Helper/TableTest.php

Lines changed: 39 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -118,30 +118,30 @@ public static function renderProvider()
118118
['ISBN', 'Title', 'Author'],
119119
$books,
120120
'compact',
121-
<<<'TABLE'
122-
ISBN Title Author
123-
99921-58-10-7 Divine Comedy Dante Alighieri
124-
9971-5-0210-0 A Tale of Two Cities Charles Dickens
125-
960-425-059-0 The Lord of the Rings J. R. R. Tolkien
126-
80-902734-1-6 And Then There Were None Agatha Christie
127-
128-
TABLE
121+
implode("\n", [
122+
'ISBN Title Author ',
123+
'99921-58-10-7 Divine Comedy Dante Alighieri ',
124+
'9971-5-0210-0 A Tale of Two Cities Charles Dickens ',
125+
'960-425-059-0 The Lord of the Rings J. R. R. Tolkien ',
126+
'80-902734-1-6 And Then There Were None Agatha Christie ',
127+
'',
128+
]),
129129
],
130130
[
131131
['ISBN', 'Title', 'Author'],
132132
$books,
133133
'borderless',
134-
<<<'TABLE'
135-
=============== ========================== ==================
136-
ISBN Title Author
137-
=============== ========================== ==================
138-
99921-58-10-7 Divine Comedy Dante Alighieri
139-
9971-5-0210-0 A Tale of Two Cities Charles Dickens
140-
960-425-059-0 The Lord of the Rings J. R. R. Tolkien
141-
80-902734-1-6 And Then There Were None Agatha Christie
142-
=============== ========================== ==================
143-
144-
TABLE
134+
implode("\n", [
135+
' =============== ========================== ================== ',
136+
' ISBN Title Author ',
137+
' =============== ========================== ================== ',
138+
' 99921-58-10-7 Divine Comedy Dante Alighieri ',
139+
' 9971-5-0210-0 A Tale of Two Cities Charles Dickens ',
140+
' 960-425-059-0 The Lord of the Rings J. R. R. Tolkien ',
141+
' 80-902734-1-6 And Then There Were None Agatha Christie ',
142+
' =============== ========================== ================== ',
143+
'',
144+
]),
145145
],
146146
[
147147
['ISBN', 'Title', 'Author'],
@@ -1378,12 +1378,14 @@ public function testColumnMaxWidths()
13781378

13791379
$expected =
13801380
<<<TABLE
1381-
+---------------+-------+------------+-----------------+
1382-
| Divine Comedy | A Tal | The Lord o | And Then There |
1383-
| | e of | f the Ring | Were None |
1384-
| | Two C | s | |
1385-
| | ities | | |
1386-
+---------------+-------+------------+-----------------+
1381+
+---------------+-------+----------+----------------+
1382+
| Divine Comedy | A | The Lord | And Then There |
1383+
| | Tale | of the | Were None |
1384+
| | of | Rings | |
1385+
| | Two | | |
1386+
| | Citie | | |
1387+
| | s | | |
1388+
+---------------+-------+----------+----------------+
13871389
13881390
TABLE;
13891391

@@ -1416,8 +1418,8 @@ public function testColumnMaxWidthsHeaders()
14161418
| Publication | Very long header with a lot of |
14171419
| | information |
14181420
+-------------+--------------------------------+
1419-
| 1954 | The Lord of the Rings, by J.R. |
1420-
| | R. Tolkien |
1421+
| 1954 | The Lord of the Rings, by |
1422+
| | J.R.R. Tolkien |
14211423
+-------------+--------------------------------+
14221424
14231425
TABLE;
@@ -1577,22 +1579,22 @@ public function testWithColspanAndMaxWith()
15771579
| Lorem ipsum dolor sit amet, consectetur adipi |
15781580
| scing elit, sed do eiusmod tempor |
15791581
+-----------------+-----------------+-----------------+
1580-
| Lorem ipsum dolor sit amet, consectetur adipi |
1581-
| scing elit, sed do eiusmod tempor |
1582+
| Lorem ipsum dolor sit amet, consectetur |
1583+
| adipiscing elit, sed do eiusmod tempor |
15821584
+-----------------+-----------------+-----------------+
15831585
| Lorem ipsum dolor sit amet, co | hello world |
15841586
| nsectetur | |
15851587
+-----------------+-----------------+-----------------+
15861588
| hello world | Lorem ipsum dolor sit amet, co |
15871589
| | nsectetur adipiscing elit |
15881590
+-----------------+-----------------+-----------------+
1589-
| hello | world | Lorem ipsum dol |
1590-
| | | or sit amet, co |
1591-
| | | nsectetur |
1591+
| hello | world | Lorem ipsum |
1592+
| | | dolor sit amet, |
1593+
| | | consectetur |
15921594
+-----------------+-----------------+-----------------+
15931595
| Symfony | Test | Lorem ipsum dol |
1594-
| | | or sit amet, co |
1595-
| | | nsectetur |
1596+
| | | or sit amet, |
1597+
| | | consectetur |
15961598
+-----------------+-----------------+-----------------+
15971599
15981600
TABLE;
@@ -1984,8 +1986,9 @@ public function testWithHyperlinkAndMaxWidth()
19841986
$expected =
19851987
<<<TABLE
19861988
+----------------------+
1987-
| \033]8;;Lorem\033\\Lorem ipsum dolor si\033]8;;\033\\ |
1988-
| \033]8;;Lorem\033\\t amet, consectetur \033]8;;\033\\ |
1989+
| \033]8;;Lorem\033\\Lorem ipsum dolor\033]8;;\033\\ |
1990+
| \033]8;;Lorem\033\\sit amet,\033]8;;\033\\ |
1991+
| \033]8;;Lorem\033\\consectetur\033]8;;\033\\ |
19891992
| \033]8;;Lorem\033\\adipiscing elit, sed\033]8;;\033\\ |
19901993
| \033]8;;Lorem\033\\do eiusmod tempor\033]8;;\033\\ |
19911994
+----------------------+

src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,13 +233,17 @@ private function autowireCalls(\ReflectionClass $reflectionClass, bool $isRoot,
233233
unset($arguments[$j]);
234234
$arguments[$namedArguments[$j]] = $value;
235235
}
236-
if ($namedArguments || !$value instanceof $this->defaultArgument) {
236+
if (!$value instanceof $this->defaultArgument) {
237237
continue;
238238
}
239239

240240
if (\is_array($value->value) ? $value->value : \is_object($value->value)) {
241241
unset($arguments[$j]);
242242
$namedArguments = $value->names;
243+
}
244+
245+
if ($namedArguments) {
246+
unset($arguments[$j]);
243247
} else {
244248
$arguments[$j] = $value->value;
245249
}

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,15 @@
1717
use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
1818
use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
1919
use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
20+
use Symfony\Component\DependencyInjection\Compiler\AutowirePass;
2021
use Symfony\Component\DependencyInjection\ContainerBuilder;
2122
use Symfony\Component\DependencyInjection\ContainerInterface;
2223
use Symfony\Component\DependencyInjection\Dumper\XmlDumper;
2324
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
2425
use Symfony\Component\DependencyInjection\Reference;
26+
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultArrayAttribute;
27+
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultEnumAttribute;
28+
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultObjectAttribute;
2529
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithEnumAttribute;
2630
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum;
2731
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooWithAbstractArgument;
@@ -278,6 +282,32 @@ public function testDumpHandlesEnumeration()
278282
$this->assertEquals(file_get_contents(self::$fixturesPath.'/xml/services_with_enumeration.xml'), $dumper->dump());
279283
}
280284

285+
/**
286+
* @dataProvider provideDefaultClasses
287+
*/
288+
public function testDumpHandlesDefaultAttribute($class, $expectedFile)
289+
{
290+
$container = new ContainerBuilder();
291+
$container
292+
->register('foo', $class)
293+
->setPublic(true)
294+
->setAutowired(true)
295+
->setArguments([2 => true]);
296+
297+
(new AutowirePass())->process($container);
298+
299+
$dumper = new XmlDumper($container);
300+
301+
$this->assertSame(file_get_contents(self::$fixturesPath.'/xml/'.$expectedFile), $dumper->dump());
302+
}
303+
304+
public static function provideDefaultClasses()
305+
{
306+
yield [FooClassWithDefaultArrayAttribute::class, 'services_with_default_array.xml'];
307+
yield [FooClassWithDefaultObjectAttribute::class, 'services_with_default_object.xml'];
308+
yield [FooClassWithDefaultEnumAttribute::class, 'services_with_default_enumeration.xml'];
309+
}
310+
281311
public function testDumpServiceWithAbstractArgument()
282312
{
283313
$container = new ContainerBuilder();

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

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,16 @@
1717
use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
1818
use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
1919
use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
20+
use Symfony\Component\DependencyInjection\Compiler\AutowirePass;
2021
use Symfony\Component\DependencyInjection\ContainerBuilder;
2122
use Symfony\Component\DependencyInjection\ContainerInterface;
2223
use Symfony\Component\DependencyInjection\Definition;
2324
use Symfony\Component\DependencyInjection\Dumper\YamlDumper;
2425
use Symfony\Component\DependencyInjection\Loader\YamlFileLoader;
2526
use Symfony\Component\DependencyInjection\Reference;
27+
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultArrayAttribute;
28+
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultEnumAttribute;
29+
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultObjectAttribute;
2630
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithEnumAttribute;
2731
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooUnitEnum;
2832
use Symfony\Component\DependencyInjection\Tests\Fixtures\FooWithAbstractArgument;
@@ -162,6 +166,34 @@ public function testDumpHandlesEnumeration()
162166
$this->assertEquals(file_get_contents(self::$fixturesPath.'/yaml/services_with_enumeration.yml'), $dumper->dump());
163167
}
164168

169+
/**
170+
* @requires PHP 8.1
171+
*
172+
* @dataProvider provideDefaultClasses
173+
*/
174+
public function testDumpHandlesDefaultAttribute($class, $expectedFile)
175+
{
176+
$container = new ContainerBuilder();
177+
$container
178+
->register('foo', $class)
179+
->setPublic(true)
180+
->setAutowired(true)
181+
->setArguments([2 => true]);
182+
183+
(new AutowirePass())->process($container);
184+
185+
$dumper = new YamlDumper($container);
186+
187+
$this->assertSame(file_get_contents(self::$fixturesPath.'/yaml/'.$expectedFile), $dumper->dump());
188+
}
189+
190+
public static function provideDefaultClasses()
191+
{
192+
yield [FooClassWithDefaultArrayAttribute::class, 'services_with_default_array.yml'];
193+
yield [FooClassWithDefaultObjectAttribute::class, 'services_with_default_object.yml'];
194+
yield [FooClassWithDefaultEnumAttribute::class, 'services_with_default_enumeration.yml'];
195+
}
196+
165197
public function testDumpServiceWithAbstractArgument()
166198
{
167199
$container = new ContainerBuilder();
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
4+
5+
class FooClassWithDefaultArrayAttribute
6+
{
7+
public function __construct(
8+
array $array = ['a', 'b', 'c'],
9+
bool $firstOptional = false,
10+
bool $secondOptional = false
11+
) {}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
4+
5+
class FooClassWithDefaultEnumAttribute
6+
{
7+
public function __construct(
8+
FooUnitEnum $enum = FooUnitEnum::FOO,
9+
bool $firstOptional = false,
10+
bool $secondOptional = false,
11+
) {}
12+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace Symfony\Component\DependencyInjection\Tests\Fixtures;
4+
5+
class FooClassWithDefaultObjectAttribute
6+
{
7+
public function __construct(
8+
object $object = new \stdClass(),
9+
bool $firstOptional = false,
10+
bool $secondOptional = false,
11+
) {}
12+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
3+
<services>
4+
<service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/>
5+
<service id="foo" class="Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultArrayAttribute" public="true" autowire="true">
6+
<argument key="secondOptional">true</argument>
7+
</service>
8+
</services>
9+
</container>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
3+
<services>
4+
<service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/>
5+
<service id="foo" class="Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultEnumAttribute" public="true" autowire="true">
6+
<argument key="secondOptional">true</argument>
7+
</service>
8+
</services>
9+
</container>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd">
3+
<services>
4+
<service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" public="true" synthetic="true"/>
5+
<service id="foo" class="Symfony\Component\DependencyInjection\Tests\Fixtures\FooClassWithDefaultObjectAttribute" public="true" autowire="true">
6+
<argument key="secondOptional">true</argument>
7+
</service>
8+
</services>
9+
</container>

0 commit comments

Comments
 (0)