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

Skip to content

Commit ef133dc

Browse files
committed
Improved code for Symfony 5
1 parent 8b4fc1b commit ef133dc

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/Symfony/Bundle/SecurityBundle/DependencyInjection/MainConfiguration.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,18 +218,21 @@ private function addFirewallsSection(ArrayNodeDefinition $rootNode, array $facto
218218
->fixXmlConfig('delete_cookie')
219219
->children()
220220
->arrayNode('delete_cookies')
221-
->normalizeKeys(true) // TRUE for BC reasons. Change it to FALSE in Symfony 5.0
221+
->normalizeKeys(false)
222222
->beforeNormalization()
223223
->ifTrue(function ($v) { return \is_array($v) && \is_int(key($v)); })
224224
->then(function ($v) { return array_map(function ($v) { return ['name' => $v]; }, $v); })
225225
->end()
226226
->beforeNormalization()
227227
->ifArray()->then(function ($v) {
228-
foreach ($v as $originalName => $config) {
228+
foreach ($v as $originalName => $cookieConfig) {
229229
if (false !== strpos($originalName, '-')) {
230230
$normalizedName = str_replace('-', '_', $originalName);
231-
// when removing this deprecation, don't forget to set normalizeKeys() to FALSE above
232231
@trigger_error(sprintf('Normalization of cookie names is deprecated since Symfony 4.3. Starting from Symfony 5.0, the "%s" cookie configured in "logout.delete_cookies" will delete the "%s" cookie instead of the "%s" cookie.', $originalName, $originalName, $normalizedName), E_USER_DEPRECATED);
232+
233+
// normalize cookie names manually for BC reasons. Remove it in Symfony 5.0.
234+
$v[$normalizedName] = $cookieConfig;
235+
unset($v[$originalName]);
233236
}
234237
}
235238

src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/CompleteConfigurationTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ public function testLogoutDeleteCookieNamesNormalization()
515515
{
516516
$container = $this->getContainer('logout_delete_cookies');
517517
$cookiesToDelete = $container->getDefinition('security.logout.handler.cookie_clearing.main')->getArgument(0);
518-
$expectedCookieNames = ['cookie1-name', 'cookie2_name', 'cookie3-long_name'];
518+
$expectedCookieNames = ['cookie2_name', 'cookie1_name', 'cookie3_long_name'];
519519

520520
$this->assertSame($expectedCookieNames, array_keys($cookiesToDelete));
521521
}

0 commit comments

Comments
 (0)