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

Skip to content

Commit bb10145

Browse files
committed
Merge branch '2.2'
* 2.2: #7106 - fix for ZTS builds Added '@@' escaping strategy for YamlFileLoader and YamlDumper [Yaml] fixed bugs with folded scalar parsing [Form] made DefaultCsrfProvider using session_status() when available Added unit tests to Dumper Update .travis.yml (closes #7355) [HttpFoudantion] fixed Request::getPreferredLanguage() Revert "merged branch jfsimon/issue-6928 (PR #7378)" Routing issue with installation in a sub-directory ref: symfony/symfony#7129
2 parents 24aa07a + 31af841 commit bb10145

File tree

8 files changed

+15
-5
lines changed

8 files changed

+15
-5
lines changed

Dumper/YamlDumper.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ private function prepareParameters($parameters, $escape = true)
260260
foreach ($parameters as $key => $value) {
261261
if (is_array($value)) {
262262
$value = $this->prepareParameters($value, $escape);
263-
} elseif ($value instanceof Reference) {
263+
} elseif ($value instanceof Reference || is_string($value) && 0 === strpos($value, '@')) {
264264
$value = '@'.$value;
265265
}
266266

Loader/YamlFileLoader.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,10 @@ private function resolveServices($value)
290290
if (is_array($value)) {
291291
$value = array_map(array($this, 'resolveServices'), $value);
292292
} elseif (is_string($value) && 0 === strpos($value, '@')) {
293-
if (0 === strpos($value, '@?')) {
293+
if (0 === strpos($value, '@@')) {
294+
$value = substr($value, 1);
295+
$invalidBehavior = null;
296+
} elseif (0 === strpos($value, '@?')) {
294297
$value = substr($value, 2);
295298
$invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
296299
} else {
@@ -305,7 +308,9 @@ private function resolveServices($value)
305308
$strict = true;
306309
}
307310

308-
$value = new Reference($value, $invalidBehavior, $strict);
311+
if (null !== $invalidBehavior) {
312+
$value = new Reference($value, $invalidBehavior, $strict);
313+
}
309314
}
310315

311316
return $value;

Tests/Fixtures/containers/container8.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
'FOO' => '%baz%',
88
'baz' => 'bar',
99
'bar' => 'foo is %%foo bar',
10+
'escape' => '@escapeme',
1011
'values' => array(true, false, null, 0, 1000.3, 'true', 'false', 'null'),
1112
)));
1213

Tests/Fixtures/php/services8.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ protected function getDefaultParameters()
3737
'foo' => '%baz%',
3838
'baz' => 'bar',
3939
'bar' => 'foo is %%foo bar',
40+
'escape' => '@escapeme',
4041
'values' => array(
4142
0 => true,
4243
1 => false,

Tests/Fixtures/xml/services8.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<parameter key="foo">%baz%</parameter>
88
<parameter key="baz">bar</parameter>
99
<parameter key="bar">foo is %%foo bar</parameter>
10+
<parameter key="escape">@escapeme</parameter>
1011
<parameter key="values" type="collection">
1112
<parameter>true</parameter>
1213
<parameter>false</parameter>

Tests/Fixtures/yaml/services2.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ parameters:
66
- 0
77
- 1000.3
88
bar: foo
9+
escape: @@escapeme
910
foo_bar: @foo_bar
1011
MixedCase:
1112
MixedCaseKey: value

Tests/Fixtures/yaml/services8.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ parameters:
22
foo: '%baz%'
33
baz: bar
44
bar: 'foo is %%foo bar'
5+
escape: '@@escapeme'
56
values: [true, false, null, 0, 1000.3, 'true', 'false', 'null']
67

Tests/Loader/YamlFileLoaderTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public function testLoadParameters()
8484
$container = new ContainerBuilder();
8585
$loader = new YamlFileLoader($container, new FileLocator(self::$fixturesPath.'/yaml'));
8686
$loader->load('services2.yml');
87-
$this->assertEquals(array('foo' => 'bar', 'mixedcase' => array('MixedCaseKey' => 'value'), 'values' => array(true, false, 0, 1000.3), 'bar' => 'foo', 'foo_bar' => new Reference('foo_bar')), $container->getParameterBag()->all(), '->load() converts YAML keys to lowercase');
87+
$this->assertEquals(array('foo' => 'bar', 'mixedcase' => array('MixedCaseKey' => 'value'), 'values' => array(true, false, 0, 1000.3), 'bar' => 'foo', 'escape' => '@escapeme', 'foo_bar' => new Reference('foo_bar')), $container->getParameterBag()->all(), '->load() converts YAML keys to lowercase');
8888
}
8989

9090
public function testLoadImports()
@@ -99,7 +99,7 @@ public function testLoadImports()
9999
$loader->load('services4.yml');
100100

101101
$actual = $container->getParameterBag()->all();
102-
$expected = array('foo' => 'bar', 'values' => array(true, false), 'bar' => '%foo%', 'foo_bar' => new Reference('foo_bar'), 'mixedcase' => array('MixedCaseKey' => 'value'), 'imported_from_ini' => true, 'imported_from_xml' => true);
102+
$expected = array('foo' => 'bar', 'values' => array(true, false), 'bar' => '%foo%', 'escape' => '@escapeme', 'foo_bar' => new Reference('foo_bar'), 'mixedcase' => array('MixedCaseKey' => 'value'), 'imported_from_ini' => true, 'imported_from_xml' => true);
103103
$this->assertEquals(array_keys($expected), array_keys($actual), '->load() imports and merges imported files');
104104

105105
// Bad import throws no exception due to ignore_errors value.

0 commit comments

Comments
 (0)