diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index db1c2a8a6ff44..415464c40b9a8 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,3 +1,9 @@ +# Console +/src/Symfony/Component/Console/Logger/ConsoleLogger.php @dunglas +# DependencyInjection +/src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php @dunglas +# HttpKernel +/src/Symfony/Component/HttpKernel/Log/Logger.php @dunglas # LDAP /src/Symfony/Component/Ldap/* @csarrazi # Lock @@ -5,6 +11,13 @@ # Messenger /src/Symfony/Bridge/Doctrine/Messenger/* @sroze /src/Symfony/Component/Messenger/* @sroze +# PropertyInfo +/src/Symfony/Component/PropertyInfo/* @dunglas +/src/Symfony/Bridge/Doctrine/PropertyInfo/* @dunglas +# Serializer +/src/Symfony/Component/Serializer/* @dunglas +# WebLink +/src/Symfony/Component/WebLink/* @dunglas # Workflow /src/Symfony/Bridge/Twig/Extension/WorkflowExtension.php @lyrixx /src/Symfony/Bridge/Twig/Tests/Extension/WorkflowExtensionTest.php @lyrixx diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 94f0fabcc4676..b6f39741d9dbc 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,6 @@ | Q | A | ------------- | --- -| Branch? | master for features / 2.7 up to 4.0 for bug fixes +| Branch? | master for features / 2.8 up to 4.1 for bug fixes | Bug fix? | yes/no | New feature? | yes/no | BC breaks? | no diff --git a/CHANGELOG-3.4.md b/CHANGELOG-3.4.md index 37f4a76efce85..3c612a6ebd595 100644 --- a/CHANGELOG-3.4.md +++ b/CHANGELOG-3.4.md @@ -7,6 +7,46 @@ in 3.4 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v3.4.0...v3.4.1 +* 3.4.12 (2018-06-25) + + * bug #27626 [TwigBundle][DX] Only add the Twig WebLinkExtension if the WebLink component is enabled (thewilkybarkid) + * bug #27701 [SecurityBundle] Dont throw if "security.http_utils" is not found (nicolas-grekas) + * bug #27690 [DI] Resolve env placeholder in logs (ro0NL) + * bug #26534 allow_extra_attributes does not throw an exception as documented (deviantintegral) + * bug #27668 [Lock] use 'r+' for fopen (fixes issue on Solaris) (fritzmg) + * bug #27669 [Filesystem] fix file lock on SunOS (fritzmg) + * bug #27662 [HttpKernel] fix handling of nested Error instances (xabbuh) + * bug #26845 [Config] Fixing GlobResource when inside phar archive (vworldat) + * bug #27382 [Form] Fix error when rendering a DateIntervalType form with exactly 0 weeks (krixon) + * bug #27309 Fix surrogate not using original request (Toflar) + * bug #27467 [HttpKernel] fix session tracking in surrogate master requests (nicolas-grekas) + * bug #27630 [Validator][Form] Remove BOM in some xlf files (gautierderuette) + * bug #27596 [Framework][Workflow] Added support for interfaces (vudaltsov) + * bug #27593 [ProxyManagerBridge] Fixed support of private services (nicolas-grekas) + * bug #27591 [VarDumper] Fix dumping ArrayObject and ArrayIterator instances (nicolas-grekas) + * bug #27581 Fix bad method call with guard authentication + session migration (weaverryan) + * bug #27576 [Cache] Fix expiry comparisons in array-based pools (nicolas-grekas) + * bug #27556 Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener (weaverryan) + * bug #27452 Avoid migration on stateless firewalls (weaverryan) + * bug #27568 [DI] Deduplicate generated proxy classes (nicolas-grekas) + * bug #27326 [Serializer] deserialize from xml: Fix a collection that contains the only one element (webnet-fr) + * bug #27567 [PhpUnitBridge] Fix error on some Windows OS (Nsbx) + * bug #27357 [Lock] Remove released semaphore (jderusse) + * bug #27416 TagAwareAdapter over non-binary memcached connections corrupts memcache (Aleksey Prilipko) + * bug #27514 [Debug] Pass previous exception to FatalErrorException (pmontoya) + * bug #27516 Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)" (nicolas-grekas) + * bug #27318 [Cache] memcache connect should not add duplicate entries on sequential calls (Aleksey Prilipko) + * bug #27389 [Serializer] Fix serializer tries to denormalize null values on nullable properties (ogizanagi) + * bug #27272 [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING (upyx) + * bug #27396 [HttpKernel] fix registering IDE links (nicolas-grekas) + * bug #26973 [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer. (kmadejski) + * bug #27303 [Process] Consider "executable" suffixes first on Windows (sanmai) + * bug #27297 Triggering RememberMe's loginFail() when token cannot be created (weaverryan) + * bug #27344 [HttpKernel] reset kernel start time on reboot (kiler129) + * bug #27365 [Serializer] Check the value of enable_max_depth if defined (dunglas) + * bug #27358 [PhpUnitBridge] silence some stderr outputs (ostrolucky) + * bug #27366 [DI] never inline lazy services (nicolas-grekas) + * 3.4.11 (2018-05-25) * bug #27364 [DI] Fix bad exception on uninitialized references to non-shared services (nicolas-grekas) diff --git a/README.md b/README.md index 9db99a74c0cc0..5796b1acd7ceb 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Community * [Join the Symfony Community][11] and meet other members at the [Symfony events][12]. * [Get Symfony support][13] on Stack Overflow, Slack, IRC, etc. * Follow us on [GitHub][14], [Twitter][15] and [Facebook][16]. +* Read our [Code of Conduct][24] and meet the [CARE Team][25] Contributing ------------ @@ -71,3 +72,5 @@ Symfony development is sponsored by [SensioLabs][21], led by the [21]: https://sensiolabs.com [22]: https://symfony.com/doc/current/contributing/code/core_team.html [23]: https://github.com/symfony/symfony-demo +[24]: https://symfony.com/coc +[25]: https://symfony.com/doc/current/contributing/code_of_conduct/care_team.html diff --git a/UPGRADE-3.0.md b/UPGRADE-3.0.md index f9524e7710f16..9ec4987b3b73e 100644 --- a/UPGRADE-3.0.md +++ b/UPGRADE-3.0.md @@ -595,6 +595,24 @@ UPGRADE FROM 2.x to 3.0 } } ``` + + If the form is submitted with a different request method than `POST`, you need to configure this in the form: + + Before: + + ```php + $form = $this->createForm(FormType::class, $entity); + $form->submit($request); + ``` + + After: + + ```php + $form = $this->createForm(FormType::class, $entity, [ + 'method' => 'PUT', + ]); + $form->handleRequest($request); + ``` * The events `PRE_BIND`, `BIND` and `POST_BIND` were renamed to `PRE_SUBMIT`, `SUBMIT` and `POST_SUBMIT`. diff --git a/UPGRADE-3.4.md b/UPGRADE-3.4.md index 765e5cf467637..8733e133740cf 100644 --- a/UPGRADE-3.4.md +++ b/UPGRADE-3.4.md @@ -345,6 +345,9 @@ Security * The `GuardAuthenticatorInterface` has been deprecated and will be removed in 4.0. Use `AuthenticatorInterface` instead. + * When extending `AbstractGuardAuthenticator` it's deprecated to return `null` from `getCredentials()`. + Return `false` from `supports()` if no credentials available. + SecurityBundle -------------- @@ -410,13 +413,13 @@ TwigBridge * deprecated the `Symfony\Bridge\Twig\Form\TwigRenderer` class, use the `FormRenderer` class from the Form component instead - - * the service `twig.form.renderer` is now an instance of `FormRenderer`. - So you might have to adjust your type-hints to `FormRendererInterface` if you are still relying on + + * the service `twig.form.renderer` is now an instance of `FormRenderer`. + So you might have to adjust your type-hints to `FormRendererInterface` if you are still relying on the `TwigRendererInterface` which was deprecated in Symfony 3.2 - - * retrieving the Renderer runtime from the twig environment via - `$twig->getRuntime('Symfony\Bridge\Twig\Form\TwigRenderer')` is not working anymore + + * retrieving the Renderer runtime from the twig environment via + `$twig->getRuntime('Symfony\Bridge\Twig\Form\TwigRenderer')` is not working anymore and should be replaced with `$twig->getRuntime('Symfony\Component\Form\FormRenderer')` instead * deprecated `Symfony\Bridge\Twig\Command\DebugCommand::set/getTwigEnvironment` and the ability diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md index 14dc6f07a6f8d..fe43d0cf99737 100644 --- a/UPGRADE-4.0.md +++ b/UPGRADE-4.0.md @@ -759,6 +759,9 @@ Security * The `GuardAuthenticatorInterface` interface has been removed. Use `AuthenticatorInterface` instead. + * When extending `AbstractGuardAuthenticator` getCredentials() cannot return + `null` anymore, return false from `supports()` if no credentials available instead. + SecurityBundle -------------- diff --git a/composer.json b/composer.json index f38c72fb8ed06..8c7d87c73c2a9 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ "require": { "php": "^5.5.9|>=7.0.8", "ext-xml": "*", - "doctrine/common": "~2.4", + "doctrine/common": "~2.4@stable", "fig/link-util": "^1.0", "twig/twig": "^1.35|^2.4.4", "psr/cache": "~1.0", diff --git a/phpunit b/phpunit index c0ffe8ddef9e9..f4b80ed064121 100755 --- a/phpunit +++ b/phpunit @@ -8,7 +8,7 @@ if (!file_exists(__DIR__.'/vendor/symfony/phpunit-bridge/bin/simple-phpunit')) { exit(1); } if (\PHP_VERSION_ID >= 70000 && !getenv('SYMFONY_PHPUNIT_VERSION')) { - putenv('SYMFONY_PHPUNIT_VERSION=6.0'); + putenv('SYMFONY_PHPUNIT_VERSION=6.5'); } putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit'); require __DIR__.'/vendor/symfony/phpunit-bridge/bin/simple-phpunit'; diff --git a/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php b/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php index 82558c724af9b..a790441fc24f1 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/DependencyInjection/DoctrineExtensionTest.php @@ -208,9 +208,7 @@ public function testLoadBasicCacheDriver($class, array $config, array $expectedC $definition = $container->getDefinition('doctrine.orm.default_metadata_cache'); $defCalls = $definition->getMethodCalls(); $expectedCalls[] = 'setNamespace'; - $actualCalls = array_map(function ($call) { - return $call[0]; - }, $defCalls); + $actualCalls = array_column($defCalls, 0); $this->assertFalse($definition->isPublic()); $this->assertEquals("%$class%", $definition->getClass()); diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index 420535b7516fd..1535f8f42b8f8 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": "^5.5.9|>=7.0.8", - "doctrine/common": "~2.4", + "doctrine/common": "~2.4@stable", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0" }, diff --git a/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php b/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php index e73002e0292fa..b62c83f426ea0 100644 --- a/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php +++ b/src/Symfony/Bridge/Monolog/Tests/Processor/WebProcessorTest.php @@ -49,6 +49,8 @@ public function testUseRequestClientIp() $this->assertEquals($server['REQUEST_METHOD'], $record['extra']['http_method']); $this->assertEquals($server['SERVER_NAME'], $record['extra']['server']); $this->assertEquals($server['HTTP_REFERER'], $record['extra']['referrer']); + + Request::setTrustedProxies(array(), -1); } public function testCanBeConstructedWithExtraFields() diff --git a/src/Symfony/Bridge/PhpUnit/Tests/CoverageListenerTest.php b/src/Symfony/Bridge/PhpUnit/Tests/CoverageListenerTest.php index 957499dfb6a2b..83f4085c8051e 100644 --- a/src/Symfony/Bridge/PhpUnit/Tests/CoverageListenerTest.php +++ b/src/Symfony/Bridge/PhpUnit/Tests/CoverageListenerTest.php @@ -31,11 +31,11 @@ public function test() $dir = __DIR__.'/../Tests/Fixtures/coverage'; $phpunit = $_SERVER['argv'][0]; - exec("$php $phpunit -c $dir/phpunit-without-listener.xml.dist $dir/tests/ --coverage-text", $output); + exec("$php $phpunit -c $dir/phpunit-without-listener.xml.dist $dir/tests/ --coverage-text 2> /dev/null", $output); $output = implode("\n", $output); $this->assertContains('FooCov', $output); - exec("$php $phpunit -c $dir/phpunit-with-listener.xml.dist $dir/tests/ --coverage-text", $output); + exec("$php $phpunit -c $dir/phpunit-with-listener.xml.dist $dir/tests/ --coverage-text 2> /dev/null", $output); $output = implode("\n", $output); $this->assertNotContains('FooCov', $output); $this->assertContains("SutNotFoundTest::test\nCould not find the tested class.", $output); diff --git a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit index a824eae8f2ab4..197650915fe91 100755 --- a/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit +++ b/src/Symfony/Bridge/PhpUnit/bin/simple-phpunit @@ -47,7 +47,7 @@ if ('phpdbg' === PHP_SAPI) { $PHP .= ' -qrr'; } -$COMPOSER = file_exists($COMPOSER = $oldPwd.'/composer.phar') || ($COMPOSER = rtrim('\\' === DIRECTORY_SEPARATOR ? preg_replace('/[\r\n].*/', '', `where.exe composer.phar`) : `which composer.phar`)) +$COMPOSER = file_exists($COMPOSER = $oldPwd.'/composer.phar') || ($COMPOSER = rtrim('\\' === DIRECTORY_SEPARATOR ? preg_replace('/[\r\n].*/', '', `where.exe composer.phar`) : `which composer.phar 2> /dev/null`)) ? $PHP.' '.escapeshellarg($COMPOSER) : 'composer'; @@ -70,6 +70,8 @@ if (!file_exists("$PHPUNIT_DIR/phpunit-$PHPUNIT_VERSION/phpunit") || md5_file(__ throw new \RuntimeException("Could not find $remoteZip"); } stream_copy_to_stream($remoteZipStream, fopen("$PHPUNIT_VERSION.zip", 'wb')); + } elseif ('\\' === DIRECTORY_SEPARATOR) { + passthru("certutil -urlcache -split -f \"https://github.com/sebastianbergmann/phpunit/archive/$PHPUNIT_VERSION.zip\" $PHPUNIT_VERSION.zip"); } else { @unlink("$PHPUNIT_VERSION.zip"); passthru("wget -q https://github.com/sebastianbergmann/phpunit/archive/$PHPUNIT_VERSION.zip"); @@ -188,15 +190,6 @@ if ($components) { } } - // Fixes for colors support on appveyor - // See https://github.com/appveyor/ci/issues/373 - $colorFixes = array( - array("S\033[0m\033[0m\033[36m\033[1mS", "E\033[0m\033[0m\033[31m\033[1mE", "I\033[0m\033[0m\033[33m\033[1mI", "F\033[0m\033[0m\033[41m\033[37mF"), - array("SS", "EE", "II", "FF"), - ); - $colorFixes[0] = array_merge($colorFixes[0], $colorFixes[0]); - $colorFixes[1] = array_merge($colorFixes[1], $colorFixes[1]); - while ($runningProcs) { usleep(300000); $terminatedProcs = array(); @@ -212,20 +205,7 @@ if ($components) { foreach ($terminatedProcs as $component => $procStatus) { foreach (array('out', 'err') as $file) { $file = "$component/phpunit.std$file"; - - if ('\\' === DIRECTORY_SEPARATOR) { - $h = fopen($file, 'rb'); - while (false !== $line = fgets($h)) { - echo str_replace($colorFixes[0], $colorFixes[1], preg_replace( - '/(\033\[[0-9]++);([0-9]++m)(?:(.)(\033\[0m))?/', - "$1m\033[$2$3$4$4", - $line - )); - } - fclose($h); - } else { - readfile($file); - } + readfile($file); unlink($file); } diff --git a/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php b/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php index 316cc8250173f..4a54cc7658e6b 100644 --- a/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php +++ b/src/Symfony/Bridge/ProxyManager/LazyProxy/PhpDumper/ProxyDumper.php @@ -57,7 +57,7 @@ public function getProxyFactoryCode(Definition $definition, $id, $factoryCode = $instantiation = 'return'; if ($definition->isShared()) { - $instantiation .= " \$this->services['$id'] ="; + $instantiation .= sprintf(' $this->%s[\'%s\'] =', $definition->isPublic() && !$definition->isPrivate() ? 'services' : 'privates', $id); } if (null === $factoryCode) { diff --git a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php index b4ce2106d8f2b..357b26844c364 100644 --- a/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php +++ b/src/Symfony/Bridge/ProxyManager/Tests/LazyProxy/PhpDumper/ProxyDumperTest.php @@ -83,6 +83,34 @@ public function testGetProxyFactoryCode() ); } + /** + * @dataProvider getPrivatePublicDefinitions + */ + public function testCorrectAssigning(Definition $definition, $access) + { + $definition->setLazy(true); + + $code = $this->dumper->getProxyFactoryCode($definition, 'foo', '$this->getFoo2Service(false)'); + + $this->assertStringMatchesFormat('%A$this->'.$access.'[\'foo\'] = %A', $code); + } + + public function getPrivatePublicDefinitions() + { + return array( + array( + (new Definition(__CLASS__)) + ->setPublic(false), + 'privates', + ), + array( + (new Definition(__CLASS__)) + ->setPublic(true), + 'services', + ), + ); + } + /** * @group legacy */ diff --git a/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php b/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php index 77c78ce38f530..c81d1cac7d3d0 100644 --- a/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php +++ b/src/Symfony/Bridge/Twig/UndefinedCallableHandler.php @@ -11,6 +11,7 @@ namespace Symfony\Bridge\Twig; +use Symfony\Bundle\FullStack; use Twig\Error\SyntaxError; /** @@ -55,14 +56,21 @@ class UndefinedCallableHandler 'workflow_marked_places' => 'workflow', ); + private static $fullStackEnable = array( + 'form' => 'enable "framework.form"', + 'security-core' => 'add the "SecurityBundle"', + 'security-http' => 'add the "SecurityBundle"', + 'web-link' => 'enable "framework.web_link"', + 'workflow' => 'enable "framework.workflows"', + ); + public static function onUndefinedFilter($name) { if (!isset(self::$filterComponents[$name])) { return false; } - // Twig will append the source context to the message, so that it will end up being like "[...] Unknown filter "%s" in foo.html.twig on line 123." - throw new SyntaxError(sprintf('Did you forget to run "composer require symfony/%s"? Unknown filter "%s".', self::$filterComponents[$name], $name)); + self::onUndefined($name, 'filter', self::$filterComponents[$name]); } public static function onUndefinedFunction($name) @@ -71,6 +79,15 @@ public static function onUndefinedFunction($name) return false; } - throw new SyntaxError(sprintf('Did you forget to run "composer require symfony/%s"? Unknown function "%s".', self::$functionComponents[$name], $name)); + self::onUndefined($name, 'function', self::$functionComponents[$name]); + } + + private static function onUndefined($name, $type, $component) + { + if (\class_exists(FullStack::class) && isset(self::$fullStackEnable[$component])) { + throw new SyntaxError(sprintf('Did you forget to %s? Unknown %s "%s".', self::$fullStackEnable[$component], $type, $name)); + } + + throw new SyntaxError(sprintf('Did you forget to run "composer require symfony/%s"? Unknown %s "%s".', $component, $type, $name)); } } diff --git a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php index ab04ff47f794e..54586bf07afd1 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php +++ b/src/Symfony/Bundle/FrameworkBundle/Console/Descriptor/TextDescriptor.php @@ -316,7 +316,7 @@ protected function describeContainerDefinition(Definition $definition, array $op } if ($definition->getFile()) { - $tableRows[] = array('Required File', $definition->getFile() ? $definition->getFile() : '-'); + $tableRows[] = array('Required File', $definition->getFile() ?: '-'); } if ($factory = $definition->getFactory()) { diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolClearerPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolClearerPass.php index 094712ded69d3..bd6908b9c4507 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolClearerPass.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/CachePoolClearerPass.php @@ -11,7 +11,6 @@ namespace Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler; -use Symfony\Component\Cache\Adapter\AbstractAdapter; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; @@ -38,22 +37,5 @@ public function process(ContainerBuilder $container) } $clearer->replaceArgument(0, $pools); } - - if (!$container->has('cache.annotations')) { - return; - } - $factory = array(AbstractAdapter::class, 'createSystemCache'); - $annotationsPool = $container->findDefinition('cache.annotations'); - if ($factory !== $annotationsPool->getFactory() || 4 !== count($annotationsPool->getArguments())) { - return; - } - if ($container->has('monolog.logger.cache')) { - $annotationsPool->addArgument(new Reference('monolog.logger.cache')); - } elseif ($container->has('cache.system')) { - $systemPool = $container->findDefinition('cache.system'); - if ($factory === $systemPool->getFactory() && 5 <= count($systemArgs = $systemPool->getArguments())) { - $annotationsPool->addArgument($systemArgs[4]); - } - } } } diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php index 74f092a3d840c..f806e49746f9c 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Configuration.php @@ -329,8 +329,8 @@ private function addWorkflowSection(ArrayNodeDefinition $rootNode) ->prototype('scalar') ->cannotBeEmpty() ->validate() - ->ifTrue(function ($v) { return !class_exists($v); }) - ->thenInvalid('The supported class %s does not exist.') + ->ifTrue(function ($v) { return !class_exists($v) && !interface_exists($v); }) + ->thenInvalid('The supported class or interface "%s" does not exist.') ->end() ->end() ->end() diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php index 17c12686dad23..59766e6d3a7a5 100644 --- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php +++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php @@ -61,9 +61,6 @@ class FrameworkBundle extends Bundle { public function boot() { - if (!ini_get('xdebug.file_link_format') && !get_cfg_var('xdebug.file_link_format')) { - ini_set('xdebug.file_link_format', $this->container->getParameter('debug.file_link_format')); - } ErrorHandler::register(null, false)->throwAt($this->container->getParameter('debug.error_handler.throw_at'), true); if ($this->container->hasParameter('kernel.trusted_proxies')) { @@ -107,7 +104,7 @@ public function build(ContainerBuilder $container) $this->addCompilerPassIfExists($container, AddConstraintValidatorsPass::class, PassConfig::TYPE_BEFORE_REMOVING); $container->addCompilerPass(new AddAnnotationsCachedReaderPass(), PassConfig::TYPE_AFTER_REMOVING, -255); $this->addCompilerPassIfExists($container, AddValidatorInitializersPass::class); - $this->addCompilerPassIfExists($container, AddConsoleCommandPass::class); + $this->addCompilerPassIfExists($container, AddConsoleCommandPass::class, PassConfig::TYPE_BEFORE_REMOVING); if (class_exists(TranslatorPass::class)) { // Arguments to be removed in 4.0, relying on the default values $container->addCompilerPass(new TranslatorPass('translator.default', 'translation.loader')); diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml index 565aef68fd45c..0622c4196c104 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/web.xml @@ -67,15 +67,6 @@ - - - - null - - %kernel.debug% - %kernel.charset% - - diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php index e5df7b8c8a7cc..86aee6e0cc354 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/SerializerCacheWarmerTest.php @@ -14,6 +14,8 @@ use Symfony\Bundle\FrameworkBundle\CacheWarmer\SerializerCacheWarmer; use Symfony\Bundle\FrameworkBundle\Tests\TestCase; use Symfony\Component\Cache\Adapter\ArrayAdapter; +use Symfony\Component\Cache\Adapter\NullAdapter; +use Symfony\Component\Cache\Adapter\PhpArrayAdapter; use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory; use Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader; use Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader; @@ -41,12 +43,10 @@ public function testWarmUp() $this->assertFileExists($file); - $values = require $file; + $arrayPool = new PhpArrayAdapter($file, new NullAdapter()); - $this->assertInternalType('array', $values); - $this->assertCount(2, $values); - $this->assertArrayHasKey('Symfony_Bundle_FrameworkBundle_Tests_Fixtures_Serialization_Person', $values); - $this->assertArrayHasKey('Symfony_Bundle_FrameworkBundle_Tests_Fixtures_Serialization_Author', $values); + $this->assertTrue($arrayPool->getItem('Symfony_Bundle_FrameworkBundle_Tests_Fixtures_Serialization_Person')->isHit()); + $this->assertTrue($arrayPool->getItem('Symfony_Bundle_FrameworkBundle_Tests_Fixtures_Serialization_Author')->isHit()); $values = $fallbackPool->getValues(); @@ -72,11 +72,6 @@ public function testWarmUpWithoutLoader() $this->assertFileExists($file); - $values = require $file; - - $this->assertInternalType('array', $values); - $this->assertCount(0, $values); - $values = $fallbackPool->getValues(); $this->assertInternalType('array', $values); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php index 23b4732afcb3a..f8d3710c6d1c5 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/CacheWarmer/ValidatorCacheWarmerTest.php @@ -14,6 +14,9 @@ use Symfony\Bundle\FrameworkBundle\CacheWarmer\ValidatorCacheWarmer; use Symfony\Bundle\FrameworkBundle\Tests\TestCase; use Symfony\Component\Cache\Adapter\ArrayAdapter; +use Symfony\Component\Cache\Adapter\NullAdapter; +use Symfony\Component\Cache\Adapter\PhpArrayAdapter; +use Symfony\Component\Validator\Mapping\ClassMetadata; use Symfony\Component\Validator\ValidatorBuilder; class ValidatorCacheWarmerTest extends TestCase @@ -36,12 +39,10 @@ public function testWarmUp() $this->assertFileExists($file); - $values = require $file; + $arrayPool = new PhpArrayAdapter($file, new NullAdapter()); - $this->assertInternalType('array', $values); - $this->assertCount(2, $values); - $this->assertArrayHasKey('Symfony.Bundle.FrameworkBundle.Tests.Fixtures.Validation.Person', $values); - $this->assertArrayHasKey('Symfony.Bundle.FrameworkBundle.Tests.Fixtures.Validation.Author', $values); + $this->assertTrue($arrayPool->getItem('Symfony.Bundle.FrameworkBundle.Tests.Fixtures.Validation.Person')->isHit()); + $this->assertTrue($arrayPool->getItem('Symfony.Bundle.FrameworkBundle.Tests.Fixtures.Validation.Author')->isHit()); $values = $fallbackPool->getValues(); @@ -67,14 +68,12 @@ public function testWarmUpWithAnnotations() $this->assertFileExists($file); - $values = require $file; + $arrayPool = new PhpArrayAdapter($file, new NullAdapter()); - $this->assertInternalType('array', $values); - $this->assertCount(1, $values); - $this->assertArrayHasKey('Symfony.Bundle.FrameworkBundle.Tests.Fixtures.Validation.Category', $values); + $item = $arrayPool->getItem('Symfony.Bundle.FrameworkBundle.Tests.Fixtures.Validation.Category'); + $this->assertTrue($item->isHit()); - // Simple check to make sure that at least one constraint is actually cached, in this case the "id" property Type. - $this->assertContains('"int"', $values['Symfony.Bundle.FrameworkBundle.Tests.Fixtures.Validation.Category']); + $this->assertInstanceOf(ClassMetadata::class, $item->get()); $values = $fallbackPool->getValues(); @@ -98,11 +97,6 @@ public function testWarmUpWithoutLoader() $this->assertFileExists($file); - $values = require $file; - - $this->assertInternalType('array', $values); - $this->assertCount(0, $values); - $values = $fallbackPool->getValues(); $this->assertInternalType('array', $values); diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php index ba523382b66ba..3dd18944de9f3 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Compiler/AddSessionDomainConstraintPass.php @@ -26,7 +26,7 @@ class AddSessionDomainConstraintPass implements CompilerPassInterface */ public function process(ContainerBuilder $container) { - if (!$container->hasParameter('session.storage.options')) { + if (!$container->hasParameter('session.storage.options') || !$container->has('security.http_utils')) { return; } @@ -34,7 +34,6 @@ public function process(ContainerBuilder $container) $domainRegexp = empty($sessionOptions['cookie_domain']) ? '%s' : sprintf('(?:%%s|(?:.+\.)?%s)', preg_quote(trim($sessionOptions['cookie_domain'], '.'))); $domainRegexp = (empty($sessionOptions['cookie_secure']) ? 'https?://' : 'https://').$domainRegexp; - // if the service doesn't exist, an exception must be thrown - ignoring would put security at risk $container->findDefinition('security.http_utils')->addArgument(sprintf('{^%s$}i', $domainRegexp)); } } diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpBasicFactory.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpBasicFactory.php index 3bfb50718bfa4..7c90ef620572a 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpBasicFactory.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpBasicFactory.php @@ -41,6 +41,7 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider, $listener = $container->setDefinition($listenerId, new ChildDefinition('security.authentication.listener.basic')); $listener->replaceArgument(2, $id); $listener->replaceArgument(3, new Reference($entryPointId)); + $listener->addMethodCall('setSessionAuthenticationStrategy', array(new Reference('security.authentication.session_strategy.'.$id))); return array($provider, $listenerId, $entryPointId); } diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpDigestFactory.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpDigestFactory.php index 43c88024d4b88..8dc5e1655ead0 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpDigestFactory.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/HttpDigestFactory.php @@ -51,6 +51,7 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider, $listener->replaceArgument(1, new Reference($userProvider)); $listener->replaceArgument(2, $id); $listener->replaceArgument(3, new Reference($entryPointId)); + $listener->addMethodCall('setSessionAuthenticationStrategy', array(new Reference('security.authentication.session_strategy.'.$id))); return array($provider, $listenerId, $entryPointId); } diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/JsonLoginFactory.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/JsonLoginFactory.php index 5a391ffacaeab..6c7adb032395b 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/JsonLoginFactory.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/JsonLoginFactory.php @@ -89,6 +89,7 @@ protected function createListener($container, $id, $config, $userProvider) $listener->replaceArgument(4, isset($config['success_handler']) ? new Reference($this->createAuthenticationSuccessHandler($container, $id, $config)) : null); $listener->replaceArgument(5, isset($config['failure_handler']) ? new Reference($this->createAuthenticationFailureHandler($container, $id, $config)) : null); $listener->replaceArgument(6, array_intersect_key($config, $this->options)); + $listener->addMethodCall('setSessionAuthenticationStrategy', array(new Reference('security.authentication.session_strategy.'.$id))); $listenerId .= '.'.$id; $container->setDefinition($listenerId, $listener); diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RemoteUserFactory.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RemoteUserFactory.php index 5e0c9d716b8f5..654816e50e737 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RemoteUserFactory.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/RemoteUserFactory.php @@ -38,6 +38,7 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider, $listener = $container->setDefinition($listenerId, new ChildDefinition('security.authentication.listener.remote_user')); $listener->replaceArgument(2, $id); $listener->replaceArgument(3, $config['user']); + $listener->addMethodCall('setSessionAuthenticationStrategy', array(new Reference('security.authentication.session_strategy.'.$id))); return array($providerId, $listenerId, $defaultEntryPoint); } diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SimplePreAuthenticationFactory.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SimplePreAuthenticationFactory.php index 5e394fca67c7b..de0df6868f3fa 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SimplePreAuthenticationFactory.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/SimplePreAuthenticationFactory.php @@ -57,6 +57,7 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider, $listener = $container->setDefinition($listenerId, new ChildDefinition('security.authentication.listener.simple_preauth')); $listener->replaceArgument(2, $id); $listener->replaceArgument(3, new Reference($config['authenticator'])); + $listener->addMethodCall('setSessionAuthenticationStrategy', array(new Reference('security.authentication.session_strategy.'.$id))); return array($provider, $listenerId, null); } diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/X509Factory.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/X509Factory.php index 39a1016b34bb1..17390f4b828f4 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/X509Factory.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/Security/Factory/X509Factory.php @@ -39,6 +39,7 @@ public function create(ContainerBuilder $container, $id, $config, $userProvider, $listener->replaceArgument(2, $id); $listener->replaceArgument(3, $config['user']); $listener->replaceArgument(4, $config['credentials']); + $listener->addMethodCall('setSessionAuthenticationStrategy', array(new Reference('security.authentication.session_strategy.'.$id))); return array($providerId, $listenerId, $defaultEntryPoint); } diff --git a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php index d8f1db8dd96f4..e8097a68a6adc 100644 --- a/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php +++ b/src/Symfony/Bundle/SecurityBundle/DependencyInjection/SecurityExtension.php @@ -45,6 +45,7 @@ class SecurityExtension extends Extension private $userProviderFactories = array(); private $expressionLanguage; private $logoutOnUserChangeByContextKey = array(); + private $statelessFirewallKeys = array(); public function __construct() { @@ -115,6 +116,9 @@ public function load(array $configs, ContainerBuilder $container) $this->createAuthorization($config, $container); $this->createRoleHierarchy($config, $container); + $container->getDefinition('security.authentication.guard_handler') + ->replaceArgument(2, $this->statelessFirewallKeys); + if ($config['encoders']) { $this->createEncoders($config['encoders'], $container); } @@ -377,7 +381,12 @@ private function createFirewall(ContainerBuilder $container, $id, $firewall, &$a $this->logoutOnUserChangeByContextKey[$contextKey] = array($id, $logoutOnUserChange); $listeners[] = new Reference($this->createContextListener($container, $contextKey, $logoutOnUserChange)); + $sessionStrategyId = 'security.authentication.session_strategy'; + } else { + $this->statelessFirewallKeys[] = $id; + $sessionStrategyId = 'security.authentication.session_strategy_noop'; } + $container->setAlias(new Alias('security.authentication.session_strategy.'.$id, false), $sessionStrategyId); $config->replaceArgument(6, $contextKey); diff --git a/src/Symfony/Bundle/SecurityBundle/Resources/config/guard.xml b/src/Symfony/Bundle/SecurityBundle/Resources/config/guard.xml index 8e6133528c4bd..6e07753c896d3 100644 --- a/src/Symfony/Bundle/SecurityBundle/Resources/config/guard.xml +++ b/src/Symfony/Bundle/SecurityBundle/Resources/config/guard.xml @@ -12,6 +12,10 @@ > + + + + diff --git a/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml b/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml index 515f56db6e8ca..58c84aaff1c16 100644 --- a/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml +++ b/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml @@ -64,6 +64,10 @@ + + none + + diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php index a836ab136cd93..382bdebe018fa 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/Compiler/AddSessionDomainConstraintPassTest.php @@ -96,19 +96,6 @@ public function testNoSession() $this->assertTrue($utils->createRedirectResponse($request, 'http://pirate.com/foo')->isRedirect('http://pirate.com/foo')); } - /** - * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException - * @expectedExceptionMessage You have requested a non-existent service "security.http_utils". - */ - public function testNoHttpUtils() - { - $container = new ContainerBuilder(); - $container->setParameter('session.storage.options', array()); - - $pass = new AddSessionDomainConstraintPass(); - $pass->process($container); - } - private function createContainer($sessionStorageOptions) { $container = new ContainerBuilder(); diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php index 52a18d08ac494..45354b15fdd9f 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/DependencyInjection/SecurityExtensionTest.php @@ -123,6 +123,35 @@ public function testDisableRoleHierarchyVoter() $this->assertFalse($container->hasDefinition('security.access.role_hierarchy_voter')); } + public function testGuardHandlerIsPassedStatelessFirewalls() + { + $container = $this->getRawContainer(); + + $container->loadFromExtension('security', array( + 'providers' => array( + 'default' => array('id' => 'foo'), + ), + + 'firewalls' => array( + 'some_firewall' => array( + 'pattern' => '^/admin', + 'http_basic' => null, + 'logout_on_user_change' => true, + ), + 'stateless_firewall' => array( + 'pattern' => '/.*', + 'stateless' => true, + 'http_basic' => null, + 'logout_on_user_change' => true, + ), + ), + )); + + $container->compile(); + $definition = $container->getDefinition('security.authentication.guard_handler'); + $this->assertSame(array('stateless_firewall'), $definition->getArgument(2)); + } + /** * @group legacy * @expectedDeprecation Not setting "logout_on_user_change" to true on firewall "some_firewall" is deprecated as of 3.4, it will always be true in 4.0. diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/UserPasswordEncoderCommandTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/UserPasswordEncoderCommandTest.php index 163aa5ccb41ef..1c6f5c280f2ed 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/UserPasswordEncoderCommandTest.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/UserPasswordEncoderCommandTest.php @@ -86,7 +86,7 @@ public function testEncodePasswordArgon2i() $this->assertContains('Password encoding succeeded', $output); $encoder = new Argon2iPasswordEncoder(); - preg_match('# Encoded password\s+(\$argon2id?\$[\w\d,=\$+\/]+={0,2})\s+#', $output, $matches); + preg_match('# Encoded password\s+(\$argon2id?\$[\w,=\$+\/]+={0,2})\s+#', $output, $matches); $hash = $matches[1]; $this->assertTrue($encoder->isPasswordValid($hash, 'password', null)); } diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index d158443896f87..fa304be517a22 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -18,7 +18,7 @@ "require": { "php": "^5.5.9|>=7.0.8", "ext-xml": "*", - "symfony/security": "~3.4.11|^4.0.11", + "symfony/security": "~3.4.12|~4.0.12|^4.1.1", "symfony/dependency-injection": "^3.4.3|^4.0.3", "symfony/http-kernel": "~3.4|~4.0", "symfony/polyfill-php70": "~1.0" @@ -46,7 +46,6 @@ "twig/twig": "~1.34|~2.4" }, "conflict": { - "symfony/security": "4.1.0-beta1|4.1.0-beta2", "symfony/var-dumper": "<3.3", "symfony/event-dispatcher": "<3.4", "symfony/framework-bundle": "<3.4", diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php index a4e8c944c92a3..0ca55f298ee83 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/Compiler/ExtensionPass.php @@ -82,6 +82,10 @@ public function process(ContainerBuilder $container) } } + if ($container->has('web_link.add_link_header_listener')) { + $container->getDefinition('twig.extension.weblink')->addTag('twig.extension'); + } + $twigLoader = $container->getDefinition('twig.loader.native_filesystem'); if ($container->has('templating')) { $loader = $container->getDefinition('twig.loader.filesystem'); diff --git a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php index c3012abbd8e53..1ca688e6b9691 100644 --- a/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php +++ b/src/Symfony/Bundle/TwigBundle/DependencyInjection/TwigExtension.php @@ -11,7 +11,6 @@ namespace Symfony\Bundle\TwigBundle\DependencyInjection; -use Symfony\Bridge\Twig\Extension\WebLinkExtension; use Symfony\Component\Config\FileLocator; use Symfony\Component\Config\Resource\FileExistenceResource; use Symfony\Component\Console\Application; @@ -19,7 +18,6 @@ use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Loader\XmlFileLoader; use Symfony\Component\HttpKernel\DependencyInjection\Extension; -use Symfony\Component\WebLink\HttpHeaderSerializer; use Twig\Extension\ExtensionInterface; use Twig\Extension\RuntimeExtensionInterface; use Twig\Loader\LoaderInterface; @@ -60,13 +58,6 @@ public function load(array $configs, ContainerBuilder $container) $container->removeDefinition('twig.translation.extractor'); } - if (class_exists(HttpHeaderSerializer::class)) { - $definition = $container->register('twig.extension.weblink', WebLinkExtension::class); - $definition->setPublic(false); - $definition->addArgument(new Reference('request_stack')); - $definition->addTag('twig.extension'); - } - foreach ($configs as $key => $config) { if (isset($config['globals'])) { foreach ($config['globals'] as $name => $value) { diff --git a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml index fca4367ba743c..5d014e930c53e 100644 --- a/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml +++ b/src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml @@ -114,6 +114,10 @@ + + + + diff --git a/src/Symfony/Bundle/WebProfilerBundle/Controller/ExceptionController.php b/src/Symfony/Bundle/WebProfilerBundle/Controller/ExceptionController.php index f008b0b5284fc..2137477a5cf35 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Controller/ExceptionController.php +++ b/src/Symfony/Bundle/WebProfilerBundle/Controller/ExceptionController.php @@ -30,6 +30,7 @@ class ExceptionController protected $twig; protected $debug; protected $profiler; + private $fileLinkFormat; public function __construct(Profiler $profiler = null, Environment $twig, $debug, FileLinkFormatter $fileLinkFormat = null) { diff --git a/src/Symfony/Component/Cache/Tests/Fixtures/ArrayCache.php b/src/Symfony/Component/Cache/Tests/Fixtures/ArrayCache.php index 1a6157e822117..7cdcafd8e5453 100644 --- a/src/Symfony/Component/Cache/Tests/Fixtures/ArrayCache.php +++ b/src/Symfony/Component/Cache/Tests/Fixtures/ArrayCache.php @@ -21,7 +21,7 @@ protected function doContains($id) $expiry = $this->data[$id][1]; - return !$expiry || time() <= $expiry || !$this->doDelete($id); + return !$expiry || time() < $expiry || !$this->doDelete($id); } protected function doSave($id, $data, $lifeTime = 0) diff --git a/src/Symfony/Component/Cache/Tests/Simple/CacheTestCase.php b/src/Symfony/Component/Cache/Tests/Simple/CacheTestCase.php index 48b972824c2c2..7c8ff572dc934 100644 --- a/src/Symfony/Component/Cache/Tests/Simple/CacheTestCase.php +++ b/src/Symfony/Component/Cache/Tests/Simple/CacheTestCase.php @@ -42,6 +42,7 @@ public function testDefaultLifeTime() } $cache = $this->createSimpleCache(2); + $cache->clear(); $cache->set('key.dlt', 'value'); sleep(1); @@ -50,6 +51,8 @@ public function testDefaultLifeTime() sleep(2); $this->assertNull($cache->get('key.dlt')); + + $cache->clear(); } public function testNotUnserializable() @@ -59,6 +62,7 @@ public function testNotUnserializable() } $cache = $this->createSimpleCache(); + $cache->clear(); $cache->set('foo', new NotUnserializable()); @@ -69,6 +73,8 @@ public function testNotUnserializable() foreach ($cache->getMultiple(array('foo')) as $value) { } $this->assertNull($value); + + $cache->clear(); } public function testPrune() @@ -83,6 +89,7 @@ public function testPrune() /** @var PruneableInterface|CacheInterface $cache */ $cache = $this->createSimpleCache(); + $cache->clear(); $cache->set('foo', 'foo-val', new \DateInterval('PT05S')); $cache->set('bar', 'bar-val', new \DateInterval('PT10S')); @@ -124,6 +131,8 @@ public function testPrune() $cache->prune(); $this->assertFalse($this->isPruned($cache, 'foo')); $this->assertTrue($this->isPruned($cache, 'qux')); + + $cache->clear(); } } diff --git a/src/Symfony/Component/Cache/Tests/Simple/MemcachedCacheTest.php b/src/Symfony/Component/Cache/Tests/Simple/MemcachedCacheTest.php index c4af891af7ba7..b46d7e443dd20 100644 --- a/src/Symfony/Component/Cache/Tests/Simple/MemcachedCacheTest.php +++ b/src/Symfony/Component/Cache/Tests/Simple/MemcachedCacheTest.php @@ -45,6 +45,15 @@ public function createSimpleCache($defaultLifetime = 0) return new MemcachedCache($client, str_replace('\\', '.', __CLASS__), $defaultLifetime); } + public function testCreatePersistentConnectionShouldNotDupServerList() + { + $instance = MemcachedCache::createConnection('memcached://'.getenv('MEMCACHED_HOST'), array('persistent_id' => 'persistent')); + $this->assertCount(1, $instance->getServerList()); + + $instance = MemcachedCache::createConnection('memcached://'.getenv('MEMCACHED_HOST'), array('persistent_id' => 'persistent')); + $this->assertCount(1, $instance->getServerList()); + } + public function testOptions() { $client = MemcachedCache::createConnection(array(), array( diff --git a/src/Symfony/Component/Cache/Tests/Simple/MemcachedCacheTextModeTest.php b/src/Symfony/Component/Cache/Tests/Simple/MemcachedCacheTextModeTest.php new file mode 100644 index 0000000000000..43cadf9034846 --- /dev/null +++ b/src/Symfony/Component/Cache/Tests/Simple/MemcachedCacheTextModeTest.php @@ -0,0 +1,25 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Cache\Tests\Simple; + +use Symfony\Component\Cache\Adapter\AbstractAdapter; +use Symfony\Component\Cache\Simple\MemcachedCache; + +class MemcachedCacheTextModeTest extends MemcachedCacheTest +{ + public function createSimpleCache($defaultLifetime = 0) + { + $client = AbstractAdapter::createConnection('memcached://'.getenv('MEMCACHED_HOST'), array('binary_protocol' => false)); + + return new MemcachedCache($client, str_replace('\\', '.', __CLASS__), $defaultLifetime); + } +} diff --git a/src/Symfony/Component/Cache/Traits/AbstractTrait.php b/src/Symfony/Component/Cache/Traits/AbstractTrait.php index 92999a2f3c34d..7953ae6e8beee 100644 --- a/src/Symfony/Component/Cache/Traits/AbstractTrait.php +++ b/src/Symfony/Component/Cache/Traits/AbstractTrait.php @@ -104,15 +104,25 @@ public function hasItem($key) */ public function clear() { + $this->deferred = array(); if ($cleared = $this->versioningIsEnabled) { - $this->namespaceVersion = 2; - foreach ($this->doFetch(array('@'.$this->namespace)) as $v) { - $this->namespaceVersion = 1 + (int) $v; + $namespaceVersion = 2; + try { + foreach ($this->doFetch(array('@'.$this->namespace)) as $v) { + $namespaceVersion = 1 + (int) $v; + } + } catch (\Exception $e) { + } + $namespaceVersion .= ':'; + try { + $cleared = $this->doSave(array('@'.$this->namespace => $namespaceVersion), 0); + } catch (\Exception $e) { + $cleared = false; + } + if ($cleared = true === $cleared || array() === $cleared) { + $this->namespaceVersion = $namespaceVersion; } - $this->namespaceVersion .= ':'; - $cleared = $this->doSave(array('@'.$this->namespace => $this->namespaceVersion), 0); } - $this->deferred = array(); try { return $this->doClear($this->namespace) || $cleared; @@ -233,8 +243,11 @@ private function getId($key) if ($this->versioningIsEnabled && '' === $this->namespaceVersion) { $this->namespaceVersion = '1:'; - foreach ($this->doFetch(array('@'.$this->namespace)) as $v) { - $this->namespaceVersion = $v; + try { + foreach ($this->doFetch(array('@'.$this->namespace)) as $v) { + $this->namespaceVersion = $v; + } + } catch (\Exception $e) { } } diff --git a/src/Symfony/Component/Cache/Traits/ArrayTrait.php b/src/Symfony/Component/Cache/Traits/ArrayTrait.php index b7d2ad6d6299c..88385ed480f34 100644 --- a/src/Symfony/Component/Cache/Traits/ArrayTrait.php +++ b/src/Symfony/Component/Cache/Traits/ArrayTrait.php @@ -44,7 +44,7 @@ public function hasItem($key) { CacheItem::validateKey($key); - return isset($this->expiries[$key]) && ($this->expiries[$key] >= time() || !$this->deleteItem($key)); + return isset($this->expiries[$key]) && ($this->expiries[$key] > time() || !$this->deleteItem($key)); } /** @@ -81,7 +81,7 @@ private function generateItems(array $keys, $now, $f) { foreach ($keys as $i => $key) { try { - if (!$isHit = isset($this->expiries[$key]) && ($this->expiries[$key] >= $now || !$this->deleteItem($key))) { + if (!$isHit = isset($this->expiries[$key]) && ($this->expiries[$key] > $now || !$this->deleteItem($key))) { $this->values[$key] = $value = null; } elseif (!$this->storeSerialized) { $value = $this->values[$key]; diff --git a/src/Symfony/Component/Cache/Traits/MemcachedTrait.php b/src/Symfony/Component/Cache/Traits/MemcachedTrait.php index 9b877efb080a9..c0d43c2e61ba5 100644 --- a/src/Symfony/Component/Cache/Traits/MemcachedTrait.php +++ b/src/Symfony/Component/Cache/Traits/MemcachedTrait.php @@ -169,12 +169,12 @@ public static function createConnection($servers, array $options = array()) } if ($oldServers !== $newServers) { - // before resetting, ensure $servers is valid - $client->addServers($servers); $client->resetServerList(); + $client->addServers($servers); } + } else { + $client->addServers($servers); } - $client->addServers($servers); if (null !== $username || null !== $password) { if (!method_exists($client, 'setSaslAuthData')) { @@ -198,7 +198,12 @@ protected function doSave(array $values, $lifetime) $lifetime += time(); } - return $this->checkResultCode($this->getClient()->setMulti($values, $lifetime)); + $encodedValues = array(); + foreach ($values as $key => $value) { + $encodedValues[rawurlencode($key)] = $value; + } + + return $this->checkResultCode($this->getClient()->setMulti($encodedValues, $lifetime)); } /** @@ -208,7 +213,16 @@ protected function doFetch(array $ids) { $unserializeCallbackHandler = ini_set('unserialize_callback_func', __CLASS__.'::handleUnserializeCallback'); try { - return $this->checkResultCode($this->getClient()->getMulti($ids)); + $encodedIds = array_map('rawurlencode', $ids); + + $encodedResult = $this->checkResultCode($this->getClient()->getMulti($encodedIds)); + + $result = array(); + foreach ($encodedResult as $key => $value) { + $result[rawurldecode($key)] = $value; + } + + return $result; } catch (\Error $e) { throw new \ErrorException($e->getMessage(), $e->getCode(), E_ERROR, $e->getFile(), $e->getLine()); } finally { @@ -221,7 +235,7 @@ protected function doFetch(array $ids) */ protected function doHave($id) { - return false !== $this->getClient()->get($id) || $this->checkResultCode(\Memcached::RES_SUCCESS === $this->client->getResultCode()); + return false !== $this->getClient()->get(rawurlencode($id)) || $this->checkResultCode(\Memcached::RES_SUCCESS === $this->client->getResultCode()); } /** @@ -230,7 +244,8 @@ protected function doHave($id) protected function doDelete(array $ids) { $ok = true; - foreach ($this->checkResultCode($this->getClient()->deleteMulti($ids)) as $result) { + $encodedIds = array_map('rawurlencode', $ids); + foreach ($this->checkResultCode($this->getClient()->deleteMulti($encodedIds)) as $result) { if (\Memcached::RES_SUCCESS !== $result && \Memcached::RES_NOTFOUND !== $result) { $ok = false; } diff --git a/src/Symfony/Component/Cache/Traits/RedisTrait.php b/src/Symfony/Component/Cache/Traits/RedisTrait.php index 9fc6177c6bd78..5a9592a901549 100644 --- a/src/Symfony/Component/Cache/Traits/RedisTrait.php +++ b/src/Symfony/Component/Cache/Traits/RedisTrait.php @@ -41,7 +41,7 @@ trait RedisTrait /** * @param \Redis|\RedisArray|\RedisCluster|\Predis\Client $redisClient */ - public function init($redisClient, $namespace = '', $defaultLifetime = 0) + private function init($redisClient, $namespace = '', $defaultLifetime = 0) { parent::__construct($namespace, $defaultLifetime); @@ -197,7 +197,7 @@ protected function doHave($id) protected function doClear($namespace) { // When using a native Redis cluster, clearing the cache is done by versioning in AbstractTrait::clear(). - // This means old keys are not really removed until they expire and may need gargage collection. + // This means old keys are not really removed until they expire and may need garbage collection. $cleared = true; $hosts = array($this->redis); diff --git a/src/Symfony/Component/Config/Resource/GlobResource.php b/src/Symfony/Component/Config/Resource/GlobResource.php index 1edd7cd22e44a..95c6ac629f0d3 100644 --- a/src/Symfony/Component/Config/Resource/GlobResource.php +++ b/src/Symfony/Component/Config/Resource/GlobResource.php @@ -93,7 +93,7 @@ public function getIterator() return; } - if (false === strpos($this->pattern, '/**/') && (defined('GLOB_BRACE') || false === strpos($this->pattern, '{'))) { + if (0 !== strpos($this->prefix, 'phar://') && false === strpos($this->pattern, '/**/') && (defined('GLOB_BRACE') || false === strpos($this->pattern, '{'))) { foreach (glob($this->prefix.$this->pattern, defined('GLOB_BRACE') ? GLOB_BRACE : 0) as $path) { if ($this->recursive && is_dir($path)) { $files = iterator_to_array(new \RecursiveIteratorIterator( diff --git a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php index 34f648610836a..67fbb98643f1e 100644 --- a/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php +++ b/src/Symfony/Component/Console/Tests/DependencyInjection/AddConsoleCommandPassTest.php @@ -12,10 +12,12 @@ namespace Symfony\Component\Console\Tests\DependencyInjection; use PHPUnit\Framework\TestCase; +use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\CommandLoader\ContainerCommandLoader; use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass; -use Symfony\Component\Console\Command\Command; use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use Symfony\Component\DependencyInjection\ChildDefinition; +use Symfony\Component\DependencyInjection\Compiler\PassConfig; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\TypedReference; @@ -28,7 +30,7 @@ class AddConsoleCommandPassTest extends TestCase public function testProcess($public) { $container = new ContainerBuilder(); - $container->addCompilerPass(new AddConsoleCommandPass()); + $container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING); $container->setParameter('my-command.class', 'Symfony\Component\Console\Tests\DependencyInjection\MyCommand'); $definition = new Definition('%my-command.class%'); @@ -127,7 +129,7 @@ public function testProcessThrowAnExceptionIfTheServiceIsAbstract() { $container = new ContainerBuilder(); $container->setResourceTracking(false); - $container->addCompilerPass(new AddConsoleCommandPass()); + $container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING); $definition = new Definition('Symfony\Component\Console\Tests\DependencyInjection\MyCommand'); $definition->addTag('console.command'); @@ -145,7 +147,7 @@ public function testProcessThrowAnExceptionIfTheServiceIsNotASubclassOfCommand() { $container = new ContainerBuilder(); $container->setResourceTracking(false); - $container->addCompilerPass(new AddConsoleCommandPass()); + $container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING); $definition = new Definition('SplObjectStorage'); $definition->addTag('console.command'); @@ -175,6 +177,79 @@ public function testProcessPrivateServicesWithSameCommand() $this->assertTrue($container->hasAlias($alias1)); $this->assertTrue($container->hasAlias($alias2)); } + + public function testProcessOnChildDefinitionWithClass() + { + $container = new ContainerBuilder(); + $container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING); + $className = 'Symfony\Component\Console\Tests\DependencyInjection\MyCommand'; + + $parentId = 'my-parent-command'; + $childId = 'my-child-command'; + + $parentDefinition = new Definition(/* no class */); + $parentDefinition->setAbstract(true)->setPublic(false); + + $childDefinition = new ChildDefinition($parentId); + $childDefinition->addTag('console.command')->setPublic(true); + $childDefinition->setClass($className); + + $container->setDefinition($parentId, $parentDefinition); + $container->setDefinition($childId, $childDefinition); + + $container->compile(); + $command = $container->get($childId); + + $this->assertInstanceOf($className, $command); + } + + public function testProcessOnChildDefinitionWithParentClass() + { + $container = new ContainerBuilder(); + $container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING); + $className = 'Symfony\Component\Console\Tests\DependencyInjection\MyCommand'; + + $parentId = 'my-parent-command'; + $childId = 'my-child-command'; + + $parentDefinition = new Definition($className); + $parentDefinition->setAbstract(true)->setPublic(false); + + $childDefinition = new ChildDefinition($parentId); + $childDefinition->addTag('console.command')->setPublic(true); + + $container->setDefinition($parentId, $parentDefinition); + $container->setDefinition($childId, $childDefinition); + + $container->compile(); + $command = $container->get($childId); + + $this->assertInstanceOf($className, $command); + } + + /** + * @expectedException \RuntimeException + * @expectedExceptionMessage The definition for "my-child-command" has no class. + */ + public function testProcessOnChildDefinitionWithoutClass() + { + $container = new ContainerBuilder(); + $container->addCompilerPass(new AddConsoleCommandPass(), PassConfig::TYPE_BEFORE_REMOVING); + + $parentId = 'my-parent-command'; + $childId = 'my-child-command'; + + $parentDefinition = new Definition(); + $parentDefinition->setAbstract(true)->setPublic(false); + + $childDefinition = new ChildDefinition($parentId); + $childDefinition->addTag('console.command')->setPublic(true); + + $container->setDefinition($parentId, $parentDefinition); + $container->setDefinition($childId, $childDefinition); + + $container->compile(); + } } class MyCommand extends Command diff --git a/src/Symfony/Component/Debug/Debug.php b/src/Symfony/Component/Debug/Debug.php index aaa54118e07be..8a2b6c8fe7519 100644 --- a/src/Symfony/Component/Debug/Debug.php +++ b/src/Symfony/Component/Debug/Debug.php @@ -23,10 +23,7 @@ class Debug /** * Enables the debug tools. * - * This method registers an error handler and an exception handler. - * - * If the Symfony ClassLoader component is available, a special - * class loader is also registered. + * This method registers an error handler, an exception handler and a special class loader. * * @param int $errorReportingLevel The level of error reporting you want * @param bool $displayErrors Whether to display errors (for development) or just log them (for production) diff --git a/src/Symfony/Component/Debug/Exception/ClassNotFoundException.php b/src/Symfony/Component/Debug/Exception/ClassNotFoundException.php index b91bf46631bbb..de5c45644363b 100644 --- a/src/Symfony/Component/Debug/Exception/ClassNotFoundException.php +++ b/src/Symfony/Component/Debug/Exception/ClassNotFoundException.php @@ -26,6 +26,9 @@ public function __construct($message, \ErrorException $previous) $previous->getSeverity(), $previous->getFile(), $previous->getLine(), + null, + true, + null, $previous->getPrevious() ); $this->setTrace($previous->getTrace()); diff --git a/src/Symfony/Component/Debug/Exception/FatalErrorException.php b/src/Symfony/Component/Debug/Exception/FatalErrorException.php index f24a54e77a6ac..6ddfc4c200416 100644 --- a/src/Symfony/Component/Debug/Exception/FatalErrorException.php +++ b/src/Symfony/Component/Debug/Exception/FatalErrorException.php @@ -18,9 +18,9 @@ */ class FatalErrorException extends \ErrorException { - public function __construct($message, $code, $severity, $filename, $lineno, $traceOffset = null, $traceArgs = true, array $trace = null) + public function __construct($message, $code, $severity, $filename, $lineno, $traceOffset = null, $traceArgs = true, array $trace = null, $previous = null) { - parent::__construct($message, $code, $severity, $filename, $lineno); + parent::__construct($message, $code, $severity, $filename, $lineno, $previous); if (null !== $trace) { if (!$traceArgs) { diff --git a/src/Symfony/Component/Debug/Exception/UndefinedFunctionException.php b/src/Symfony/Component/Debug/Exception/UndefinedFunctionException.php index a66ae2a3879c9..8f5f454e55d99 100644 --- a/src/Symfony/Component/Debug/Exception/UndefinedFunctionException.php +++ b/src/Symfony/Component/Debug/Exception/UndefinedFunctionException.php @@ -26,6 +26,9 @@ public function __construct($message, \ErrorException $previous) $previous->getSeverity(), $previous->getFile(), $previous->getLine(), + null, + true, + null, $previous->getPrevious() ); $this->setTrace($previous->getTrace()); diff --git a/src/Symfony/Component/Debug/Exception/UndefinedMethodException.php b/src/Symfony/Component/Debug/Exception/UndefinedMethodException.php index 350dc3187f475..f7e340baf4dc6 100644 --- a/src/Symfony/Component/Debug/Exception/UndefinedMethodException.php +++ b/src/Symfony/Component/Debug/Exception/UndefinedMethodException.php @@ -26,6 +26,9 @@ public function __construct($message, \ErrorException $previous) $previous->getSeverity(), $previous->getFile(), $previous->getLine(), + null, + true, + null, $previous->getPrevious() ); $this->setTrace($previous->getTrace()); diff --git a/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php b/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php index 69fca11bd2e07..a2905f03b3329 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php @@ -106,11 +106,15 @@ protected function processValue($value, $isRoot = false) */ private function isInlineableDefinition($id, Definition $definition, ServiceReferenceGraph $graph) { + if ($definition->getErrors() || $definition->isDeprecated() || $definition->isLazy() || $definition->isSynthetic()) { + return false; + } + if (!$definition->isShared()) { return true; } - if ($definition->isDeprecated() || $definition->isPublic() || $definition->isPrivate() || $definition->isLazy()) { + if ($definition->isPublic() || $definition->isPrivate()) { return false; } diff --git a/src/Symfony/Component/DependencyInjection/Compiler/ResolveServiceSubscribersPass.php b/src/Symfony/Component/DependencyInjection/Compiler/ResolveServiceSubscribersPass.php index bde9433690f95..ccc80a443e420 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/ResolveServiceSubscribersPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/ResolveServiceSubscribersPass.php @@ -35,7 +35,12 @@ protected function processValue($value, $isRoot = false) } $serviceLocator = $this->serviceLocator; - $this->serviceLocator = $value->hasTag('container.service_subscriber.locator') ? $value->getTag('container.service_subscriber.locator')[0]['id'] : null; + $this->serviceLocator = null; + + if ($value->hasTag('container.service_subscriber.locator')) { + $this->serviceLocator = $value->getTag('container.service_subscriber.locator')[0]['id']; + $value->clearTag('container.service_subscriber.locator'); + } try { return parent::processValue($value); diff --git a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php index 7296a098ee0ed..dc2d36053ee0d 100644 --- a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php +++ b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php @@ -1479,7 +1479,7 @@ public function getNormalizedIds() */ public function log(CompilerPassInterface $pass, $message) { - $this->getCompiler()->log($pass, $message); + $this->getCompiler()->log($pass, $this->resolveEnvPlaceholders($message)); } /** diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index d640b9a2351d1..7c493f62e365c 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -396,6 +396,7 @@ private function collectLineage($class, array &$lineage) private function generateProxyClasses() { + $alreadyGenerated = array(); $definitions = $this->container->getDefinitions(); $strip = '' === $this->docStar && method_exists('Symfony\Component\HttpKernel\Kernel', 'stripComments'); $proxyDumper = $this->getProxyDumper(); @@ -404,8 +405,12 @@ private function generateProxyClasses() if (!$proxyDumper->isProxyCandidate($definition)) { continue; } + if (isset($alreadyGenerated[$class = $definition->getClass()])) { + continue; + } + $alreadyGenerated[$class] = true; // register class' reflector for resource tracking - $this->container->getReflectionClass($definition->getClass()); + $this->container->getReflectionClass($class); $proxyCode = "\n".$proxyDumper->getProxyCode($definition); if ($strip) { $proxyCode = "setServiceA(ServiceA $a); - if (isset($inlinedDefinition[$definition]) && $this->hasReference($id, array($def->getArguments(), $def->getFactory()))) { + if (isset($inlinedDefinitions[$definition]) && $this->hasReference($id, array($def->getArguments(), $def->getFactory()))) { throw new ServiceCircularReferenceException($id, array($id)); } diff --git a/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php b/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php index 84686efff5d6a..57ea90eae0e5e 100644 --- a/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php +++ b/src/Symfony/Component/DependencyInjection/LazyProxy/ProxyHelper.php @@ -62,17 +62,4 @@ public static function getTypeHint(\ReflectionFunctionAbstract $r, \ReflectionPa return $prefix.$parent->name; } } - - private static function export($value) - { - if (!is_array($value)) { - return var_export($value, true); - } - $code = array(); - foreach ($value as $k => $v) { - $code[] = sprintf('%s => %s', var_export($k, true), self::export($v)); - } - - return sprintf('array(%s)', implode(', ', $code)); - } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php index 15c827d8270df..81b5810f94151 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php @@ -123,7 +123,7 @@ public function testProcessInlinesWhenThereAreMultipleReferencesButFromTheSameDe public function testYamlContainerCompiles($directory, $actualServiceId, $expectedServiceId, ContainerBuilder $mainContainer = null) { // allow a container to be passed in, which might have autoconfigure settings - $container = $mainContainer ? $mainContainer : new ContainerBuilder(); + $container = $mainContainer ?: new ContainerBuilder(); $container->setResourceTracking(false); $loader = new YamlFileLoader($container, new FileLocator(__DIR__.'/../Fixtures/yaml/integration/'.$directory)); $loader->load('main.yml'); diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php index 56046e735b998..319561cf38941 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php @@ -11,7 +11,6 @@ namespace Symfony\Component\DependencyInjection\Tests\Dumper; -use DummyProxyDumper; use PHPUnit\Framework\TestCase; use Psr\Container\ContainerInterface; use Symfony\Component\Config\FileLocator; @@ -490,6 +489,19 @@ public function testInlinedDefinitionReferencingServiceContainer() $this->assertStringEqualsFile(self::$fixturesPath.'/php/services13.php', $dumper->dump(), '->dump() dumps inline definitions which reference service_container'); } + public function testNonSharedLazyDefinitionReferences() + { + $container = new ContainerBuilder(); + $container->register('foo', 'stdClass')->setShared(false)->setLazy(true); + $container->register('bar', 'stdClass')->addArgument(new Reference('foo', ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, false)); + $container->compile(); + + $dumper = new PhpDumper($container); + $dumper->setProxyDumper(new \DummyProxyDumper()); + + $this->assertStringEqualsFile(self::$fixturesPath.'/php/services_non_shared_lazy.php', $dumper->dump()); + } + public function testInitializePropertiesBeforeMethodCalls() { require_once self::$fixturesPath.'/includes/classes.php'; @@ -558,12 +570,25 @@ public function testCircularReferenceAllowanceForInlinedDefinitionsForLazyServic $dumper = new PhpDumper($container); - $dumper->setProxyDumper(new DummyProxyDumper()); + $dumper->setProxyDumper(new \DummyProxyDumper()); $dumper->dump(); $this->addToAssertionCount(1); } + public function testDedupLazyProxy() + { + $container = new ContainerBuilder(); + $container->register('foo', 'stdClass')->setLazy(true)->setPublic(true); + $container->register('bar', 'stdClass')->setLazy(true)->setPublic(true); + $container->compile(); + + $dumper = new PhpDumper($container); + $dumper->setProxyDumper(new \DummyProxyDumper()); + + $this->assertStringEqualsFile(self::$fixturesPath.'/php/services_dedup_lazy_proxy.php', $dumper->dump()); + } + public function testLazyArgumentProvideGenerator() { require_once self::$fixturesPath.'/includes/classes.php'; diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php index bc653a744c9c5..33b043fa3f384 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/classes.php @@ -85,17 +85,17 @@ class DummyProxyDumper implements ProxyDumper { public function isProxyCandidate(Definition $definition) { - return false; + return $definition->isLazy(); } public function getProxyFactoryCode(Definition $definition, $id, $factoryCall = null) { - return ''; + return " // lazy factory for {$definition->getClass()}\n\n"; } public function getProxyCode(Definition $definition) { - return ''; + return "// proxy code for {$definition->getClass()}\n"; } } diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_dedup_lazy_proxy.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_dedup_lazy_proxy.php new file mode 100644 index 0000000000000..73a7f259f86b5 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_dedup_lazy_proxy.php @@ -0,0 +1,88 @@ +services = array(); + $this->methodMap = array( + 'bar' => 'getBarService', + 'foo' => 'getFooService', + ); + + $this->aliases = array(); + } + + public function getRemovedIds() + { + return array( + 'Psr\\Container\\ContainerInterface' => true, + 'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true, + ); + } + + public function compile() + { + throw new LogicException('You cannot compile a dumped container that was already compiled.'); + } + + public function isCompiled() + { + return true; + } + + public function isFrozen() + { + @trigger_error(sprintf('The %s() method is deprecated since Symfony 3.3 and will be removed in 4.0. Use the isCompiled() method instead.', __METHOD__), E_USER_DEPRECATED); + + return true; + } + + protected function createProxy($class, \Closure $factory) + { + return $factory(); + } + + /** + * Gets the public 'bar' shared service. + * + * @return \stdClass + */ + protected function getBarService($lazyLoad = true) + { + // lazy factory for stdClass + + return new \stdClass(); + } + + /** + * Gets the public 'foo' shared service. + * + * @return \stdClass + */ + protected function getFooService($lazyLoad = true) + { + // lazy factory for stdClass + + return new \stdClass(); + } +} + +// proxy code for stdClass diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_non_shared_lazy.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_non_shared_lazy.php new file mode 100644 index 0000000000000..6c3b1405069f1 --- /dev/null +++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_non_shared_lazy.php @@ -0,0 +1,92 @@ +services = array(); + $this->methodMap = array( + 'bar' => 'getBarService', + 'foo' => 'getFooService', + ); + $this->privates = array( + 'bar' => true, + 'foo' => true, + ); + + $this->aliases = array(); + } + + public function getRemovedIds() + { + return array( + 'Psr\\Container\\ContainerInterface' => true, + 'Symfony\\Component\\DependencyInjection\\ContainerInterface' => true, + 'bar' => true, + 'foo' => true, + ); + } + + public function compile() + { + throw new LogicException('You cannot compile a dumped container that was already compiled.'); + } + + public function isCompiled() + { + return true; + } + + public function isFrozen() + { + @trigger_error(sprintf('The %s() method is deprecated since Symfony 3.3 and will be removed in 4.0. Use the isCompiled() method instead.', __METHOD__), E_USER_DEPRECATED); + + return true; + } + + protected function createProxy($class, \Closure $factory) + { + return $factory(); + } + + /** + * Gets the private 'bar' shared service. + * + * @return \stdClass + */ + protected function getBarService() + { + return $this->services['bar'] = new \stdClass(${($_ = isset($this->services['foo']) ? $this->services['foo'] : $this->getFooService()) && false ?: '_'}); + } + + /** + * Gets the private 'foo' service. + * + * @return \stdClass + */ + protected function getFooService($lazyLoad = true) + { + // lazy factory for stdClass + + return new \stdClass(); + } +} + +// proxy code for stdClass diff --git a/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php b/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php index a9cfc4caf7688..a537476553701 100644 --- a/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php +++ b/src/Symfony/Component/ExpressionLanguage/ExpressionLanguage.php @@ -71,7 +71,7 @@ public function compile($expression, $names = array()) * @param Expression|string $expression The expression to compile * @param array $values An array of values * - * @return string The result of the evaluation of the expression + * @return mixed The result of the evaluation of the expression */ public function evaluate($expression, $values = array()) { diff --git a/src/Symfony/Component/Filesystem/LockHandler.php b/src/Symfony/Component/Filesystem/LockHandler.php index a2e7ad5c336a5..81c4ce64c72ad 100644 --- a/src/Symfony/Component/Filesystem/LockHandler.php +++ b/src/Symfony/Component/Filesystem/LockHandler.php @@ -81,12 +81,12 @@ public function lock($blocking = false) $error = $msg; }); - if (!$this->handle = fopen($this->file, 'r')) { + if (!$this->handle = fopen($this->file, 'r+') ?: fopen($this->file, 'r')) { if ($this->handle = fopen($this->file, 'x')) { chmod($this->file, 0444); - } elseif (!$this->handle = fopen($this->file, 'r')) { + } elseif (!$this->handle = fopen($this->file, 'r+') ?: fopen($this->file, 'r')) { usleep(100); // Give some time for chmod() to complete - $this->handle = fopen($this->file, 'r'); + $this->handle = fopen($this->file, 'r+') ?: fopen($this->file, 'r'); } } restore_error_handler(); diff --git a/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php b/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php index 94253c7ee7ca2..4f274e2d12efa 100644 --- a/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php +++ b/src/Symfony/Component/Finder/Tests/Iterator/RealIteratorTestCase.php @@ -60,11 +60,20 @@ public static function setUpBeforeClass() public static function tearDownAfterClass() { - foreach (array_reverse(self::$files) as $file) { - if (DIRECTORY_SEPARATOR === $file[strlen($file) - 1]) { - @rmdir($file); + $paths = new \RecursiveIteratorIterator( + new \RecursiveDirectoryIterator(self::$tmpDir, \RecursiveDirectoryIterator::SKIP_DOTS), + \RecursiveIteratorIterator::CHILD_FIRST + ); + + foreach ($paths as $path) { + if ($path->isDir()) { + if ($path->isLink()) { + @unlink($path); + } else { + @rmdir($path); + } } else { - @unlink($file); + @unlink($path); } } } diff --git a/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php index f5004241f3a99..5e0e73fe21660 100644 --- a/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateIntervalToArrayTransformer.php @@ -89,7 +89,7 @@ public function transform($dateInterval) $result[$field] = $dateInterval->format('%'.($this->pad ? strtoupper($char) : $char)); } if (in_array('weeks', $this->fields, true)) { - $result['weeks'] = 0; + $result['weeks'] = '0'; if (isset($result['days']) && (int) $result['days'] >= 7) { $result['weeks'] = (string) floor($result['days'] / 7); $result['days'] = (string) ($result['days'] % 7); diff --git a/src/Symfony/Component/Form/Resources/translations/validators.hy.xlf b/src/Symfony/Component/Form/Resources/translations/validators.hy.xlf index 5a6091f890545..7550cb1b5818e 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.hy.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.hy.xlf @@ -1,4 +1,4 @@ - + @@ -16,4 +16,4 @@ - \ No newline at end of file + diff --git a/src/Symfony/Component/Form/Resources/translations/validators.lt.xlf b/src/Symfony/Component/Form/Resources/translations/validators.lt.xlf index 25f30887bc1bf..e9eebc7389739 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.lt.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.lt.xlf @@ -1,4 +1,4 @@ - + @@ -16,4 +16,4 @@ - \ No newline at end of file + diff --git a/src/Symfony/Component/Form/Resources/translations/validators.mn.xlf b/src/Symfony/Component/Form/Resources/translations/validators.mn.xlf index 002b01c175b8f..171df74d63c0c 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.mn.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.mn.xlf @@ -1,4 +1,4 @@ - + diff --git a/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf b/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf index 8d829f1b46ea4..fbbbeb442297c 100644 --- a/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf +++ b/src/Symfony/Component/Form/Resources/translations/validators.ru.xlf @@ -1,4 +1,4 @@ - + @@ -16,4 +16,4 @@ - \ No newline at end of file + diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateIntervalToArrayTransformerTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateIntervalToArrayTransformerTest.php index 81e6b3bc6cf66..e5735dfca34f6 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateIntervalToArrayTransformerTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/DateIntervalToArrayTransformerTest.php @@ -90,6 +90,21 @@ public function testTransformWithWeek() $this->assertSame($output, $input); } + public function testTransformWithZeroWeek() + { + $transformer = new DateIntervalToArrayTransformer(array('weeks', 'minutes', 'seconds')); + $input = new \DateInterval('P1Y2M0WT4H5M6S'); + $output = array( + 'weeks' => '0', + 'minutes' => '5', + 'seconds' => '6', + ); + $input = $transformer->transform($input); + ksort($input); + ksort($output); + $this->assertSame($output, $input); + } + public function testTransformDaysToWeeks() { $transformer = new DateIntervalToArrayTransformer(array('weeks', 'minutes', 'seconds')); diff --git a/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php b/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php index 11a859326b047..e8a05ee68fbc8 100644 --- a/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php +++ b/src/Symfony/Component/HttpFoundation/ResponseHeaderBag.php @@ -210,7 +210,7 @@ public function removeCookie($name, $path = '/', $domain = null) * * @param string $format * - * @return array + * @return Cookie[] * * @throws \InvalidArgumentException When the $format is invalid */ diff --git a/src/Symfony/Component/HttpFoundation/Session/Session.php b/src/Symfony/Component/HttpFoundation/Session/Session.php index a46cffbb8dbd6..f0379c1697b82 100644 --- a/src/Symfony/Component/HttpFoundation/Session/Session.php +++ b/src/Symfony/Component/HttpFoundation/Session/Session.php @@ -29,7 +29,7 @@ class Session implements SessionInterface, \IteratorAggregate, \Countable private $flashName; private $attributeName; private $data = array(); - private $hasBeenStarted; + private $usageIndex = 0; /** * @param SessionStorageInterface $storage A SessionStorageInterface instance @@ -54,6 +54,8 @@ public function __construct(SessionStorageInterface $storage = null, AttributeBa */ public function start() { + ++$this->usageIndex; + return $this->storage->start(); } @@ -142,13 +144,13 @@ public function count() } /** - * @return bool + * @return int * * @internal */ - public function hasBeenStarted() + public function getUsageIndex() { - return $this->hasBeenStarted; + return $this->usageIndex; } /** @@ -158,6 +160,7 @@ public function hasBeenStarted() */ public function isEmpty() { + ++$this->usageIndex; foreach ($this->data as &$data) { if (!empty($data)) { return false; @@ -182,6 +185,8 @@ public function invalidate($lifetime = null) */ public function migrate($destroy = false, $lifetime = null) { + ++$this->usageIndex; + return $this->storage->regenerate($destroy, $lifetime); } @@ -190,6 +195,8 @@ public function migrate($destroy = false, $lifetime = null) */ public function save() { + ++$this->usageIndex; + $this->storage->save(); } @@ -230,6 +237,8 @@ public function setName($name) */ public function getMetadataBag() { + ++$this->usageIndex; + return $this->storage->getMetadataBag(); } @@ -238,7 +247,7 @@ public function getMetadataBag() */ public function registerBag(SessionBagInterface $bag) { - $this->storage->registerBag(new SessionBagProxy($bag, $this->data, $this->hasBeenStarted)); + $this->storage->registerBag(new SessionBagProxy($bag, $this->data, $this->usageIndex)); } /** diff --git a/src/Symfony/Component/HttpFoundation/Session/SessionBagProxy.php b/src/Symfony/Component/HttpFoundation/Session/SessionBagProxy.php index 307836d5f9461..88005ee092e2a 100644 --- a/src/Symfony/Component/HttpFoundation/Session/SessionBagProxy.php +++ b/src/Symfony/Component/HttpFoundation/Session/SessionBagProxy.php @@ -20,13 +20,13 @@ final class SessionBagProxy implements SessionBagInterface { private $bag; private $data; - private $hasBeenStarted; + private $usageIndex; - public function __construct(SessionBagInterface $bag, array &$data, &$hasBeenStarted) + public function __construct(SessionBagInterface $bag, array &$data, &$usageIndex) { $this->bag = $bag; $this->data = &$data; - $this->hasBeenStarted = &$hasBeenStarted; + $this->usageIndex = &$usageIndex; } /** @@ -34,6 +34,8 @@ public function __construct(SessionBagInterface $bag, array &$data, &$hasBeenSta */ public function getBag() { + ++$this->usageIndex; + return $this->bag; } @@ -42,6 +44,8 @@ public function getBag() */ public function isEmpty() { + ++$this->usageIndex; + return empty($this->data[$this->bag->getStorageKey()]); } @@ -58,7 +62,7 @@ public function getName() */ public function initialize(array &$array) { - $this->hasBeenStarted = true; + ++$this->usageIndex; $this->data[$this->bag->getStorageKey()] = &$array; $this->bag->initialize($array); @@ -77,6 +81,8 @@ public function getStorageKey() */ public function clear() { + ++$this->usageIndex; + return $this->bag->clear(); } } diff --git a/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/common.inc b/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/common.inc index ba101d357852d..f9c40a9a3c5e1 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/common.inc +++ b/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/common.inc @@ -22,6 +22,10 @@ error_reporting(-1); ini_set('html_errors', 0); ini_set('display_errors', 1); +if (ini_get('xdebug.default_enable')) { + xdebug_disable(); +} + header_remove('X-Powered-By'); header('Content-Type: text/plain; charset=utf-8'); diff --git a/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php b/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php index 201839f89c521..bd94a2450523b 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/JsonResponseTest.php @@ -16,6 +16,15 @@ class JsonResponseTest extends TestCase { + protected function setUp() + { + parent::setUp(); + + if (!defined('HHVM_VERSION')) { + $this->iniSet('serialize_precision', 14); + } + } + public function testConstructorEmptyCreatesJsonObject() { $response = new JsonResponse(); diff --git a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php index 4266197ab225d..9d4181fbc7324 100644 --- a/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php +++ b/src/Symfony/Component/HttpFoundation/Tests/RequestTest.php @@ -21,7 +21,6 @@ class RequestTest extends TestCase { protected function tearDown() { - // reset Request::setTrustedProxies(array(), -1); Request::setTrustedHosts(array()); } diff --git a/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php b/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php index 27a9a825243a2..be06a61c40ff1 100644 --- a/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php +++ b/src/Symfony/Component/HttpKernel/DataCollector/DumpDataCollector.php @@ -171,7 +171,7 @@ public function reset() } $this->data = array(); $this->dataCount = 0; - $this->isCollected = false; + $this->isCollected = true; $this->clonesCount = 0; $this->clonesIndex = 0; } diff --git a/src/Symfony/Component/HttpKernel/EventListener/AbstractSessionListener.php b/src/Symfony/Component/HttpKernel/EventListener/AbstractSessionListener.php index dff29ee80b418..a54ca62d87b6c 100644 --- a/src/Symfony/Component/HttpKernel/EventListener/AbstractSessionListener.php +++ b/src/Symfony/Component/HttpKernel/EventListener/AbstractSessionListener.php @@ -14,6 +14,7 @@ use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; +use Symfony\Component\HttpKernel\Event\FinishRequestEvent; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\HttpKernel\KernelEvents; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -25,6 +26,8 @@ */ abstract class AbstractSessionListener implements EventSubscriberInterface { + private $sessionUsageStack = array(); + public function onKernelRequest(GetResponseEvent $event) { if (!$event->isMasterRequest()) { @@ -33,6 +36,7 @@ public function onKernelRequest(GetResponseEvent $event) $request = $event->getRequest(); $session = $this->getSession(); + $this->sessionUsageStack[] = $session instanceof Session ? $session->getUsageIndex() : null; if (null === $session || $request->hasSession()) { return; } @@ -50,7 +54,7 @@ public function onKernelResponse(FilterResponseEvent $event) return; } - if ($session->isStarted() || ($session instanceof Session && $session->hasBeenStarted())) { + if ($session instanceof Session ? $session->getUsageIndex() !== end($this->sessionUsageStack) : $session->isStarted()) { $event->getResponse() ->setPrivate() ->setMaxAge(0) @@ -58,12 +62,23 @@ public function onKernelResponse(FilterResponseEvent $event) } } + /** + * @internal + */ + public function onFinishRequest(FinishRequestEvent $event) + { + if ($event->isMasterRequest()) { + array_pop($this->sessionUsageStack); + } + } + public static function getSubscribedEvents() { return array( KernelEvents::REQUEST => array('onKernelRequest', 128), // low priority to come after regular response listeners, same as SaveSessionListener KernelEvents::RESPONSE => array('onKernelResponse', -1000), + KernelEvents::FINISH_REQUEST => array('onFinishRequest'), ); } diff --git a/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php b/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php index 3dfa4cd8ea79a..983f1c2b8f2b8 100644 --- a/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php +++ b/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php @@ -12,11 +12,9 @@ namespace Symfony\Component\HttpKernel\EventListener; use Psr\Log\LoggerInterface; -use Symfony\Component\Debug\ExceptionHandler; use Symfony\Component\Debug\Exception\FlattenException; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\Log\DebugLoggerInterface; use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent; @@ -35,14 +33,12 @@ class ExceptionListener implements EventSubscriberInterface protected $controller; protected $logger; protected $debug; - private $charset; - public function __construct($controller, LoggerInterface $logger = null, $debug = false, $charset = null) + public function __construct($controller, LoggerInterface $logger = null, $debug = false) { $this->controller = $controller; $this->logger = $logger; $this->debug = $debug; - $this->charset = $charset; } public function onKernelException(GetResponseForExceptionEvent $event) @@ -68,7 +64,7 @@ public function onKernelException(GetResponseForExceptionEvent $event) } } - $prev = new \ReflectionProperty('Exception', 'previous'); + $prev = new \ReflectionProperty($wrapper instanceof \Exception ? \Exception::class : \Error::class, 'previous'); $prev->setAccessible(true); $prev->setValue($wrapper, $exception); @@ -121,12 +117,8 @@ protected function logException(\Exception $exception, $message) protected function duplicateRequest(\Exception $exception, Request $request) { $attributes = array( - 'exception' => $exception = FlattenException::create($exception), - '_controller' => $this->controller ?: function () use ($exception) { - $handler = new ExceptionHandler($this->debug, $this->charset); - - return new Response($handler->getHtml($exception), $exception->getStatusCode(), $exception->getHeaders()); - }, + '_controller' => $this->controller, + 'exception' => FlattenException::create($exception), 'logger' => $this->logger instanceof DebugLoggerInterface ? $this->logger : null, ); $request = $request->duplicate(null, null, $attributes); diff --git a/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php b/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php index 3f3a51a59e145..da642819078a9 100644 --- a/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php +++ b/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php @@ -126,7 +126,9 @@ protected function createSubRequest($uri, Request $request) // Do nothing } - $server['REMOTE_ADDR'] = '127.0.0.1'; + $trustedProxies = Request::getTrustedProxies(); + $server['REMOTE_ADDR'] = $trustedProxies ? reset($trustedProxies) : '127.0.0.1'; + unset($server['HTTP_IF_MODIFIED_SINCE']); unset($server['HTTP_IF_NONE_MATCH']); diff --git a/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php b/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php index 7c5a44f05ba91..8cc4b2108c289 100644 --- a/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php +++ b/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php @@ -165,7 +165,11 @@ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQ // FIXME: catch exceptions and implement a 500 error page here? -> in Varnish, there is a built-in error page mechanism if (HttpKernelInterface::MASTER_REQUEST === $type) { $this->traces = array(); - $this->request = $request; + // Keep a clone of the original request for surrogates so they can access it. + // We must clone here to get a separate instance because the application will modify the request during + // the application flow (we know it always does because we do ourselves by setting REMOTE_ADDR to 127.0.0.1 + // and adding the X-Forwarded-For header, see HttpCache::forward()). + $this->request = clone $request; if (null !== $this->surrogate) { $this->surrogateCacheStrategy = $this->surrogate->createCacheStrategy(); } diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index ca0f0b95c7a8c..3c740e45ef5c1 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -67,11 +67,11 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private $requestStackSize = 0; private $resetServices = false; - const VERSION = '3.4.11'; - const VERSION_ID = 30411; + const VERSION = '3.4.12'; + const VERSION_ID = 30412; const MAJOR_VERSION = 3; const MINOR_VERSION = 4; - const RELEASE_VERSION = 11; + const RELEASE_VERSION = 12; const EXTRA_VERSION = ''; const END_OF_MAINTENANCE = '11/2020'; @@ -87,18 +87,10 @@ public function __construct($environment, $debug) $this->debug = (bool) $debug; $this->rootDir = $this->getRootDir(); $this->name = $this->getName(); - - if ($this->debug) { - $this->startTime = microtime(true); - } } public function __clone() { - if ($this->debug) { - $this->startTime = microtime(true); - } - $this->booted = false; $this->container = null; $this->requestStackSize = 0; @@ -116,10 +108,16 @@ public function boot() $this->container->get('services_resetter')->reset(); } $this->resetServices = false; + if ($this->debug) { + $this->startTime = microtime(true); + } } return; } + if ($this->debug) { + $this->startTime = microtime(true); + } if ($this->debug && !isset($_ENV['SHELL_VERBOSITY']) && !isset($_SERVER['SHELL_VERBOSITY'])) { putenv('SHELL_VERBOSITY=3'); $_ENV['SHELL_VERBOSITY'] = 3; diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php index b607bf900ae91..3cb0b298bb07a 100644 --- a/src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php @@ -151,23 +151,6 @@ public function testCSPHeaderIsRemoved() $this->assertFalse($response->headers->has('content-security-policy'), 'CSP header has been removed'); $this->assertFalse($dispatcher->hasListeners(KernelEvents::RESPONSE), 'CSP removal listener has been removed'); } - - public function testNullController() - { - $listener = new ExceptionListener(null); - $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock(); - $kernel->expects($this->once())->method('handle')->will($this->returnCallback(function (Request $request) { - $controller = $request->attributes->get('_controller'); - - return $controller(); - })); - $request = Request::create('/'); - $event = new GetResponseForExceptionEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, new \Exception('foo')); - - $listener->onKernelException($event); - - $this->assertContains('Whoops, looks like something went wrong.', $event->getResponse()->getContent()); - } } class TestLogger extends Logger implements DebugLoggerInterface diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php index 34598363c8914..a6416e7f693df 100644 --- a/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/EventListener/SessionListenerTest.php @@ -18,6 +18,7 @@ use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\HttpKernel\Event\FilterResponseEvent; +use Symfony\Component\HttpKernel\Event\FinishRequestEvent; use Symfony\Component\HttpKernel\EventListener\AbstractSessionListener; use Symfony\Component\HttpKernel\EventListener\SessionListener; use Symfony\Component\HttpKernel\HttpKernelInterface; @@ -58,8 +59,7 @@ public function testSessionIsSet() public function testResponseIsPrivate() { $session = $this->getMockBuilder(Session::class)->disableOriginalConstructor()->getMock(); - $session->expects($this->once())->method('isStarted')->willReturn(false); - $session->expects($this->once())->method('hasBeenStarted')->willReturn(true); + $session->expects($this->exactly(2))->method('getUsageIndex')->will($this->onConsecutiveCalls(0, 1)); $container = new Container(); $container->set('session', $session); @@ -76,4 +76,38 @@ public function testResponseIsPrivate() $this->assertTrue($response->headers->hasCacheControlDirective('must-revalidate')); $this->assertSame('0', $response->headers->getCacheControlDirective('max-age')); } + + public function testSurrogateMasterRequestIsPublic() + { + $session = $this->getMockBuilder(Session::class)->disableOriginalConstructor()->getMock(); + $session->expects($this->exactly(4))->method('getUsageIndex')->will($this->onConsecutiveCalls(0, 1, 1, 1)); + + $container = new Container(); + $container->set('session', $session); + + $listener = new SessionListener($container); + $kernel = $this->getMockBuilder(HttpKernelInterface::class)->disableOriginalConstructor()->getMock(); + + $request = new Request(); + $response = new Response(); + $response->setCache(array('public' => true, 'max_age' => '30')); + $listener->onKernelRequest(new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST)); + $this->assertTrue($request->hasSession()); + + $subRequest = clone $request; + $this->assertSame($request->getSession(), $subRequest->getSession()); + $listener->onKernelRequest(new GetResponseEvent($kernel, $subRequest, HttpKernelInterface::MASTER_REQUEST)); + $listener->onKernelResponse(new FilterResponseEvent($kernel, $subRequest, HttpKernelInterface::MASTER_REQUEST, $response)); + $listener->onFinishRequest(new FinishRequestEvent($kernel, $subRequest, HttpKernelInterface::MASTER_REQUEST)); + + $this->assertFalse($response->headers->hasCacheControlDirective('private')); + $this->assertFalse($response->headers->hasCacheControlDirective('must-revalidate')); + $this->assertSame('30', $response->headers->getCacheControlDirective('max-age')); + + $listener->onKernelResponse(new FilterResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, $response)); + + $this->assertTrue($response->headers->hasCacheControlDirective('private')); + $this->assertTrue($response->headers->hasCacheControlDirective('must-revalidate')); + $this->assertSame('0', $response->headers->getCacheControlDirective('max-age')); + } } diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php index d0609432554e1..8016603180164 100644 --- a/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/EventListener/ValidateRequestListenerTest.php @@ -21,6 +21,11 @@ class ValidateRequestListenerTest extends TestCase { + protected function tearDown() + { + Request::setTrustedProxies(array(), -1); + } + /** * @expectedException \Symfony\Component\HttpFoundation\Exception\ConflictingHeadersException */ diff --git a/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php b/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php index 18e55a5be0df2..8e81dd584e0be 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php @@ -212,16 +212,33 @@ public function testESIHeaderIsKeptInSubrequestWithTrustedHeaderDisabled() public function testHeadersPossiblyResultingIn304AreNotAssignedToSubrequest() { $expectedSubRequest = Request::create('/'); - if (Request::HEADER_X_FORWARDED_FOR & Request::getTrustedHeaderSet()) { - $expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1')); - $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1'); - } + $expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1')); + $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1'); $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest)); $request = Request::create('/', 'GET', array(), array(), array(), array('HTTP_IF_MODIFIED_SINCE' => 'Fri, 01 Jan 2016 00:00:00 GMT', 'HTTP_IF_NONE_MATCH' => '*')); $strategy->render('/', $request); } + public function testFirstTrustedProxyIsSetAsRemote() + { + Request::setTrustedProxies(array('1.1.1.1'), -1); + + $expectedSubRequest = Request::create('/'); + $expectedSubRequest->headers->set('Surrogate-Capability', 'abc="ESI/1.0"'); + $expectedSubRequest->server->set('REMOTE_ADDR', '1.1.1.1'); + $expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1')); + $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1'); + + $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest)); + + $request = Request::create('/'); + $request->headers->set('Surrogate-Capability', 'abc="ESI/1.0"'); + $strategy->render('/', $request); + + Request::setTrustedProxies(array(), -1); + } + /** * Creates a Kernel expecting a request equals to $request * Allows delta in comparison in case REQUEST_TIME changed by 1 second. diff --git a/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php b/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php index 2a9a30d9ca409..0a77648003a35 100644 --- a/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/HttpCache/HttpCacheTest.php @@ -11,9 +11,11 @@ namespace Symfony\Component\HttpKernel\Tests\HttpCache; +use Symfony\Component\HttpKernel\HttpCache\Esi; use Symfony\Component\HttpKernel\HttpCache\HttpCache; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpKernel\HttpCache\Store; use Symfony\Component\HttpKernel\HttpKernelInterface; /** @@ -1350,6 +1352,8 @@ public function testHttpCacheIsSetAsATrustedProxy(array $existing, array $expect $this->request('GET', '/', array('REMOTE_ADDR' => '10.0.0.1')); $this->assertEquals($expected, Request::getTrustedProxies()); + + Request::setTrustedProxies(array(), -1); } public function getTrustedProxyData() @@ -1465,6 +1469,42 @@ public function testDoesNotCacheOptionsRequest() $this->assertHttpKernelIsNotCalled(); $this->assertSame('get', $this->response->getContent()); } + + public function testUsesOriginalRequestForSurrogate() + { + $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock(); + $store = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpCache\StoreInterface')->getMock(); + + $kernel + ->expects($this->exactly(2)) + ->method('handle') + ->willReturnCallback(function (Request $request) { + $this->assertSame('127.0.0.1', $request->server->get('REMOTE_ADDR')); + + return new Response(); + }); + + $cache = new HttpCache($kernel, + $store, + new Esi() + ); + + $request = Request::create('/'); + $request->server->set('REMOTE_ADDR', '10.0.0.1'); + + // Main request + $cache->handle($request, HttpKernelInterface::MASTER_REQUEST); + + // Main request was now modified by HttpCache + // The surrogate will ask for the request using $this->cache->getRequest() + // which MUST return the original request so the surrogate + // can actually behave like a reverse proxy like e.g. Varnish would. + $this->assertSame('10.0.0.1', $cache->getRequest()->getClientIp()); + $this->assertSame('10.0.0.1', $cache->getRequest()->server->get('REMOTE_ADDR')); + + // Surrogate request + $cache->handle($request, HttpKernelInterface::SUB_REQUEST); + } } class TestKernel implements HttpKernelInterface diff --git a/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php b/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php index 7aed26aa59c9c..09349970f4a84 100644 --- a/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/HttpKernelTest.php @@ -349,6 +349,8 @@ public function testInconsistentClientIpsOnMasterRequests() $kernel = $this->getHttpKernel($dispatcher); $kernel->handle($request, $kernel::MASTER_REQUEST, false); + + Request::setTrustedProxies(array(), -1); } private function getHttpKernel(EventDispatcherInterface $eventDispatcher, $controller = null, RequestStack $requestStack = null, array $arguments = array()) diff --git a/src/Symfony/Component/HttpKernel/Tests/KernelTest.php b/src/Symfony/Component/HttpKernel/Tests/KernelTest.php index a16ac37deebce..7cde2ac5e2ef9 100644 --- a/src/Symfony/Component/HttpKernel/Tests/KernelTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/KernelTest.php @@ -901,6 +901,21 @@ public function testServicesResetter() $this->assertEquals(1, ResettableService::$counter); } + /** + * @group time-sensitive + */ + public function testKernelStartTimeIsResetWhileBootingAlreadyBootedKernel() + { + $kernel = $this->getKernelForTest(array('initializeBundles'), true); + $kernel->boot(); + $preReBoot = $kernel->getStartTime(); + + sleep(3600); //Intentionally large value to detect if ClockMock ever breaks + $kernel->reboot(null); + + $this->assertGreaterThan($preReBoot, $kernel->getStartTime()); + } + /** * Returns a mock for the BundleInterface. * @@ -970,10 +985,10 @@ protected function getKernel(array $methods = array(), array $bundles = array()) return $kernel; } - protected function getKernelForTest(array $methods = array()) + protected function getKernelForTest(array $methods = array(), $debug = false) { $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\Tests\Fixtures\KernelForTest') - ->setConstructorArgs(array('test', false)) + ->setConstructorArgs(array('test', $debug)) ->setMethods($methods) ->getMock(); $p = new \ReflectionProperty($kernel, 'rootDir'); diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index 17c0544c62560..585ab5b37dbaa 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -18,7 +18,7 @@ "require": { "php": "^5.5.9|>=7.0.8", "symfony/event-dispatcher": "~2.8|~3.0|~4.0", - "symfony/http-foundation": "^3.4.4|^4.0.4", + "symfony/http-foundation": "~3.4.12|~4.0.12|^4.1.1", "symfony/debug": "~2.8|~3.0|~4.0", "symfony/polyfill-ctype": "~1.8", "psr/log": "~1.0" diff --git a/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php b/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php index 52225f4941a1c..565a8726197a9 100644 --- a/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php +++ b/src/Symfony/Component/Intl/Data/Generator/LanguageDataGenerator.php @@ -157,9 +157,7 @@ protected function generateDataForMeta(BundleReaderInterface $reader, $tempDir) return array( 'Version' => $rootBundle['Version'], 'Languages' => $this->languageCodes, - 'Aliases' => array_map(function (\ResourceBundle $bundle) { - return $bundle['replacement']; - }, iterator_to_array($metadataBundle['alias']['language'])), + 'Aliases' => array_column(iterator_to_array($metadataBundle['alias']['language']), 'replacement'), 'Alpha2ToAlpha3' => $this->generateAlpha2ToAlpha3Mapping($metadataBundle), ); } diff --git a/src/Symfony/Component/Intl/Intl.php b/src/Symfony/Component/Intl/Intl.php index c4f80ca6c18d7..b621d7e51d324 100644 --- a/src/Symfony/Component/Intl/Intl.php +++ b/src/Symfony/Component/Intl/Intl.php @@ -235,7 +235,7 @@ public static function getIcuDataVersion() */ public static function getIcuStubVersion() { - return '61.1'; + return '62.1'; } /** diff --git a/src/Symfony/Component/Intl/Resources/bin/icu.ini b/src/Symfony/Component/Intl/Resources/bin/icu.ini index ba613bb5c9884..9845e0bb1a33a 100644 --- a/src/Symfony/Component/Intl/Resources/bin/icu.ini +++ b/src/Symfony/Component/Intl/Resources/bin/icu.ini @@ -17,3 +17,4 @@ 59 = http://source.icu-project.org/repos/icu/tags/release-59-1/icu4c/source 60 = http://source.icu-project.org/repos/icu/tags/release-60-2/icu4c/source 61 = http://source.icu-project.org/repos/icu/tags/release-61-1/icu4c/source +62 = http://source.icu-project.org/repos/icu/tags/release-62-1/icu4c/source diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/af.json b/src/Symfony/Component/Intl/Resources/data/currencies/af.json index 195beed4423e6..1131e344ffb7e 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/af.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/af.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/am.json b/src/Symfony/Component/Intl/Resources/data/currencies/am.json index 9058b8c350062..023e618712c61 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/am.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/am.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ar.json b/src/Symfony/Component/Intl/Resources/data/currencies/ar.json index fb9e5f0b8c708..e61cdcc4e7bd5 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ar.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ar.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/as.json b/src/Symfony/Component/Intl/Resources/data/currencies/as.json index 3657dbd3d1a57..055e6034912ef 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/as.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/as.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/az.json b/src/Symfony/Component/Intl/Resources/data/currencies/az.json index 1b8f992166279..29f6f9bcbbbde 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/az.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/az.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/be.json b/src/Symfony/Component/Intl/Resources/data/currencies/be.json index 473fb9f1f730a..3ec0c8b471fe4 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/be.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/be.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/bg.json b/src/Symfony/Component/Intl/Resources/data/currencies/bg.json index 271539f5816b4..63064588961c1 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/bg.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/bg.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/bn.json b/src/Symfony/Component/Intl/Resources/data/currencies/bn.json index fd6efd48f21b6..7878bc5aac913 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/bn.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/bn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/br.json b/src/Symfony/Component/Intl/Resources/data/currencies/br.json index 22eea9943c716..c02a4f31cf532 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/br.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/br.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/bs.json b/src/Symfony/Component/Intl/Resources/data/currencies/bs.json index f622b92404f19..863c0ed0e2347 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/bs.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/bs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/bs_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/currencies/bs_Cyrl.json index 8ea737ab67642..22722c932d8c9 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/bs_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/bs_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ca.json b/src/Symfony/Component/Intl/Resources/data/currencies/ca.json index adeffbcc735fc..b6b7d3813eb80 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ca.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ca.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ce.json b/src/Symfony/Component/Intl/Resources/data/currencies/ce.json index 15a7970ea485f..e33a78cbc3c5a 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ce.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ce.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/cs.json b/src/Symfony/Component/Intl/Resources/data/currencies/cs.json index 75336abaaea17..9ca585cd32411 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/cs.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/cs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/cy.json b/src/Symfony/Component/Intl/Resources/data/currencies/cy.json index 427c7c4ee5368..eb06a2e1b1720 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/cy.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/cy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/da.json b/src/Symfony/Component/Intl/Resources/data/currencies/da.json index bf7efa167f098..3b4f6f96031e5 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/da.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/da.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/de.json b/src/Symfony/Component/Intl/Resources/data/currencies/de.json index 0cc2637bf5d70..a0440234d15dc 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/de.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/de.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.41", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/dz.json b/src/Symfony/Component/Intl/Resources/data/currencies/dz.json index 52065987d1995..86c079209c2a8 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/dz.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/dz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ee.json b/src/Symfony/Component/Intl/Resources/data/currencies/ee.json index f134982957c13..367b4347af0b1 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ee.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ee.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/el.json b/src/Symfony/Component/Intl/Resources/data/currencies/el.json index 6340817056487..8dc27a15d8d8f 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/el.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/el.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/en.json b/src/Symfony/Component/Intl/Resources/data/currencies/en.json index fec62d406cfef..4d2bfd85dc6c8 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/en.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/en.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/es.json b/src/Symfony/Component/Intl/Resources/data/currencies/es.json index 0e9e40ec81d56..43960ad1bd04f 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/es.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/es.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/es_VE.json b/src/Symfony/Component/Intl/Resources/data/currencies/es_VE.json index b0186c31fb475..e147a09cf353c 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/es_VE.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/es_VE.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.39", + "Version": "2.1.41.97", "Names": { "VEF": [ "Bs.", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/et.json b/src/Symfony/Component/Intl/Resources/data/currencies/et.json index 94d63c3ea9596..e197096bc518a 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/et.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/et.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/eu.json b/src/Symfony/Component/Intl/Resources/data/currencies/eu.json index 1b5dcd9758c11..705bf9f112e7d 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/eu.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/eu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/fa.json b/src/Symfony/Component/Intl/Resources/data/currencies/fa.json index 7e7df64a18c1b..4d2d577bcdedb 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/fa.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/fa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/fi.json b/src/Symfony/Component/Intl/Resources/data/currencies/fi.json index 19c712491d080..d7e04181393be 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/fi.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/fi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/fo.json b/src/Symfony/Component/Intl/Resources/data/currencies/fo.json index 7db1d33e3fb94..8fad41b52595d 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/fo.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/fo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/fr.json b/src/Symfony/Component/Intl/Resources/data/currencies/fr.json index 800c9e4d89138..55fcd25248df8 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/fr.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/fr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/fy.json b/src/Symfony/Component/Intl/Resources/data/currencies/fy.json index 1c557bf851c02..0c3648228c956 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/fy.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/fy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ga.json b/src/Symfony/Component/Intl/Resources/data/currencies/ga.json index dbb83178310e4..f5220ddaaa373 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ga.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ga.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/gd.json b/src/Symfony/Component/Intl/Resources/data/currencies/gd.json index c2b173894728d..805ff5869b9f0 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/gd.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/gd.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/gl.json b/src/Symfony/Component/Intl/Resources/data/currencies/gl.json index 02b0d8b574671..f9e1e697fcc7f 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/gl.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/gl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/gu.json b/src/Symfony/Component/Intl/Resources/data/currencies/gu.json index c5d49e2779ec9..a27f1ecd0160f 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/gu.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/gu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/he.json b/src/Symfony/Component/Intl/Resources/data/currencies/he.json index 6933e0ca1bb41..7a2475cf02dba 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/he.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/he.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/hi.json b/src/Symfony/Component/Intl/Resources/data/currencies/hi.json index 4544cea5dbbaf..2159d42b461c8 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/hi.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/hi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/hr.json b/src/Symfony/Component/Intl/Resources/data/currencies/hr.json index 4e85c0f030b99..b8ba455f15d21 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/hr.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/hr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/hu.json b/src/Symfony/Component/Intl/Resources/data/currencies/hu.json index 4039c505cd1af..2406114598684 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/hu.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/hu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/hy.json b/src/Symfony/Component/Intl/Resources/data/currencies/hy.json index 73fd873c346fa..14e89809aa111 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/hy.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/hy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/id.json b/src/Symfony/Component/Intl/Resources/data/currencies/id.json index 4da93ecd05099..d18d212fcae7a 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/id.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/id.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/in.json b/src/Symfony/Component/Intl/Resources/data/currencies/in.json index 4da93ecd05099..d18d212fcae7a 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/in.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/in.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/is.json b/src/Symfony/Component/Intl/Resources/data/currencies/is.json index d854bc1070e38..3b77177230a49 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/is.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/is.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/it.json b/src/Symfony/Component/Intl/Resources/data/currencies/it.json index df98d9ebfc9da..6c4ef7a027bbf 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/it.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/it.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.40", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/iw.json b/src/Symfony/Component/Intl/Resources/data/currencies/iw.json index 6933e0ca1bb41..7a2475cf02dba 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/iw.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/iw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ja.json b/src/Symfony/Component/Intl/Resources/data/currencies/ja.json index a388a1ac5f0a3..2fc9a53aaeb76 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ja.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ja.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ka.json b/src/Symfony/Component/Intl/Resources/data/currencies/ka.json index 3ba1942450a03..67d63d8a6c179 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ka.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ka.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/kk.json b/src/Symfony/Component/Intl/Resources/data/currencies/kk.json index 20adf173d2976..fb11ce310c798 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/kk.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/kk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/km.json b/src/Symfony/Component/Intl/Resources/data/currencies/km.json index 8b73e024f9e0b..5c41dac002fbe 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/km.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/km.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/kn.json b/src/Symfony/Component/Intl/Resources/data/currencies/kn.json index 3f23d8bb499d8..3ddd471f35a1e 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/kn.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/kn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ko.json b/src/Symfony/Component/Intl/Resources/data/currencies/ko.json index ab543f2086a0a..e3bd00c6f147f 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ko.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ko.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ks.json b/src/Symfony/Component/Intl/Resources/data/currencies/ks.json index 498b4dd1cf38e..002c2d30d3913 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ks.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ks.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ky.json b/src/Symfony/Component/Intl/Resources/data/currencies/ky.json index c3435649e999b..df62f05636490 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ky.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ky.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/lb.json b/src/Symfony/Component/Intl/Resources/data/currencies/lb.json index c427022bf56dc..a0588c4912530 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/lb.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/lb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/lo.json b/src/Symfony/Component/Intl/Resources/data/currencies/lo.json index d852350a53017..62ca5e12c5d33 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/lo.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/lo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/lt.json b/src/Symfony/Component/Intl/Resources/data/currencies/lt.json index 04803c2a4f9c0..53b0cdb7bdec3 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/lt.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/lt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/lv.json b/src/Symfony/Component/Intl/Resources/data/currencies/lv.json index bb9f0619bba64..e651d2e70eb08 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/lv.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/lv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/meta.json b/src/Symfony/Component/Intl/Resources/data/currencies/meta.json index 858a528612d00..9dd1d353dfff8 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/meta.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/meta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.58", "Currencies": [ "ADP", "AED", @@ -663,6 +663,12 @@ 0, 0 ], + "VEF": [ + 2, + 0, + 0, + 0 + ], "VND": [ 0, 0, diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/mk.json b/src/Symfony/Component/Intl/Resources/data/currencies/mk.json index 754cb8044e9b4..ca0294f0b49ed 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/mk.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/mk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ml.json b/src/Symfony/Component/Intl/Resources/data/currencies/ml.json index 588553900fc40..3b6e669cf89ce 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ml.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ml.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/mn.json b/src/Symfony/Component/Intl/Resources/data/currencies/mn.json index 3ae12501c7073..5938e605550bd 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/mn.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/mn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/mr.json b/src/Symfony/Component/Intl/Resources/data/currencies/mr.json index 00b4ab812fca2..87ea2b9ec131e 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/mr.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/mr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ms.json b/src/Symfony/Component/Intl/Resources/data/currencies/ms.json index a9dd3014dbb8a..3036c91284e42 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ms.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ms.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/mt.json b/src/Symfony/Component/Intl/Resources/data/currencies/mt.json index 64f108d883d69..0b1f0f7279b0d 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/mt.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/mt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/my.json b/src/Symfony/Component/Intl/Resources/data/currencies/my.json index a0c0926207709..9c8822111ea04 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/my.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/my.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/nb.json b/src/Symfony/Component/Intl/Resources/data/currencies/nb.json index f97f45d1c5440..f14107f891542 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/nb.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/nb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ne.json b/src/Symfony/Component/Intl/Resources/data/currencies/ne.json index 7ae11871707e5..655169f14d9a8 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ne.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ne.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/nl.json b/src/Symfony/Component/Intl/Resources/data/currencies/nl.json index 434e711f1099d..72d4d1d47f8c8 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/nl.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/nl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", @@ -271,7 +271,7 @@ ], "CNY": [ "CN¥", - "Chinese Yuan" + "Chinese yuan" ], "COP": [ "COP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/nn.json b/src/Symfony/Component/Intl/Resources/data/currencies/nn.json index 767b7e56372eb..b2fb4fe7db080 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/nn.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/nn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/no.json b/src/Symfony/Component/Intl/Resources/data/currencies/no.json index f97f45d1c5440..f14107f891542 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/no.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/no.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/or.json b/src/Symfony/Component/Intl/Resources/data/currencies/or.json index a8efbdb951ec2..ca7c224aed043 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/or.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/or.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/pa.json b/src/Symfony/Component/Intl/Resources/data/currencies/pa.json index 78fe3f486d6f8..33d39c0bcb01f 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/pa.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/pa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/pl.json b/src/Symfony/Component/Intl/Resources/data/currencies/pl.json index c54c5c63ec946..613ba02a0e557 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/pl.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/pl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ps.json b/src/Symfony/Component/Intl/Resources/data/currencies/ps.json index 7ba97c4bc79c7..153aff6d74dcf 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ps.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ps.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/pt.json b/src/Symfony/Component/Intl/Resources/data/currencies/pt.json index 9ead271d3fc55..1af2a051d0ec5 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/pt.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/pt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.json b/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.json index 2672a96a1456d..b9fe93bccc1e5 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/pt_PT.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/rm.json b/src/Symfony/Component/Intl/Resources/data/currencies/rm.json index e8545fcbe472a..66552349b6352 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/rm.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/rm.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ro.json b/src/Symfony/Component/Intl/Resources/data/currencies/ro.json index de4561f084442..87383953ec8f4 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ro.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ro.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/root.json b/src/Symfony/Component/Intl/Resources/data/currencies/root.json index 3f1917c8900ac..3b78302feba14 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/root.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/root.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.58", "Names": { "AUD": [ "A$", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ru.json b/src/Symfony/Component/Intl/Resources/data/currencies/ru.json index a2b3748ea233f..db29b840362bb 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ru.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ru.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sh.json b/src/Symfony/Component/Intl/Resources/data/currencies/sh.json index 321a08b32373e..f1a8f9bbf9af3 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sh.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/si.json b/src/Symfony/Component/Intl/Resources/data/currencies/si.json index e8a6959f86a21..f39852e997be7 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/si.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/si.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sk.json b/src/Symfony/Component/Intl/Resources/data/currencies/sk.json index ab7061b963a27..21c9f866559aa 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sk.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sl.json b/src/Symfony/Component/Intl/Resources/data/currencies/sl.json index 3d0d38adb0656..24430cfab9e82 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sl.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sq.json b/src/Symfony/Component/Intl/Resources/data/currencies/sq.json index 29fc4935f7905..6db1b1334e1f4 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sq.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sq.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sr.json b/src/Symfony/Component/Intl/Resources/data/currencies/sr.json index 36ef5a780b05f..db80e6519cd61 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sr.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.json b/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.json index 321a08b32373e..f1a8f9bbf9af3 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sr_Latn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sv.json b/src/Symfony/Component/Intl/Resources/data/currencies/sv.json index 00f411f54778d..df4b40318fc8b 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sv.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/sw.json b/src/Symfony/Component/Intl/Resources/data/currencies/sw.json index 0fc0fd1957693..2c1de61c1937a 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/sw.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/sw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ta.json b/src/Symfony/Component/Intl/Resources/data/currencies/ta.json index 6d8263e3424ab..3f0e7a5539817 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ta.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/te.json b/src/Symfony/Component/Intl/Resources/data/currencies/te.json index 156892f946da4..200c7659756d7 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/te.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/te.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/th.json b/src/Symfony/Component/Intl/Resources/data/currencies/th.json index 9a0f9a6a6d0fa..881492f1c27a3 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/th.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/th.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/tl.json b/src/Symfony/Component/Intl/Resources/data/currencies/tl.json index f5881a01e2c8d..7ad62a02697e4 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/tl.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/tl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/tr.json b/src/Symfony/Component/Intl/Resources/data/currencies/tr.json index fe0c247a635fc..5920329dfb3af 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/tr.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/tr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ug.json b/src/Symfony/Component/Intl/Resources/data/currencies/ug.json index af737fd2aa246..5aece0a8aa846 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ug.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ug.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/uk.json b/src/Symfony/Component/Intl/Resources/data/currencies/uk.json index 62de55e9e27f5..ec44b5009867a 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/uk.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/uk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/ur.json b/src/Symfony/Component/Intl/Resources/data/currencies/ur.json index fa41082b1ca04..e7fdca3d2b464 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/ur.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/ur.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/uz.json b/src/Symfony/Component/Intl/Resources/data/currencies/uz.json index cf9fe56d802ba..a99be4d553e75 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/uz.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/uz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/uz_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/currencies/uz_Cyrl.json index e13a40eeb89e9..9deb2b2fe2a8e 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/uz_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/uz_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "ANG": [ "ANG", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/vi.json b/src/Symfony/Component/Intl/Resources/data/currencies/vi.json index 2693d127a4067..398f76881e8fe 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/vi.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/vi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/zh.json b/src/Symfony/Component/Intl/Resources/data/currencies/zh.json index 04379ec801608..39b62310c2dbe 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/zh.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/zh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.json b/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.json index 2fef02124c7ea..0ac1f1a537f0b 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/zh_Hant.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "ADP": [ "ADP", diff --git a/src/Symfony/Component/Intl/Resources/data/currencies/zu.json b/src/Symfony/Component/Intl/Resources/data/currencies/zu.json index e07dbbd3767a6..d7a7caf686983 100644 --- a/src/Symfony/Component/Intl/Resources/data/currencies/zu.json +++ b/src/Symfony/Component/Intl/Resources/data/currencies/zu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AED": [ "AED", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/af.json b/src/Symfony/Component/Intl/Resources/data/languages/af.json index ff428d44d5985..c33370a652670 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/af.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/af.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abkasies", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/am.json b/src/Symfony/Component/Intl/Resources/data/languages/am.json index a1726c4e5d8fc..c4c23c151d0c6 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/am.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/am.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "አፋርኛ", "ab": "አብሐዚኛ", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ar.json b/src/Symfony/Component/Intl/Resources/data/languages/ar.json index 7893d2204b65f..aa0c218b28875 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ar.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ar.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "الأفارية", "ab": "الأبخازية", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/as.json b/src/Symfony/Component/Intl/Resources/data/languages/as.json index 9745f49557680..275f70741815c 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/as.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/as.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "আফাৰ", "ab": "আবখাজিয়ান", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/az.json b/src/Symfony/Component/Intl/Resources/data/languages/az.json index d226a67835ceb..aee7ed4f05576 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/az.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/az.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abxaz", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/be.json b/src/Symfony/Component/Intl/Resources/data/languages/be.json index b4b379fc35ef7..580d82ed45d0f 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/be.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/be.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афарская", "ab": "абхазская", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/bg.json b/src/Symfony/Component/Intl/Resources/data/languages/bg.json index 801007fc81bbc..b918596574fbf 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/bg.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/bg.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афарски", "ab": "абхазки", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/bn.json b/src/Symfony/Component/Intl/Resources/data/languages/bn.json index 2148e59d043c1..55a56db1aeb31 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/bn.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/bn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "আফার", "ab": "আবখাজিয়ান", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/br.json b/src/Symfony/Component/Intl/Resources/data/languages/br.json index 33fadd28c92a6..39c428634d05c 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/br.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/br.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhazeg", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/bs.json b/src/Symfony/Component/Intl/Resources/data/languages/bs.json index 57edbe6c99cb5..4dd7e19e3ff94 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/bs.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/bs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afarski", "ab": "abhaski", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/bs_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/languages/bs_Cyrl.json index acadc23fae040..8612cb042144a 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/bs_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/bs_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афарски", "ab": "абказијски", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ca.json b/src/Symfony/Component/Intl/Resources/data/languages/ca.json index 659e91126f536..5bda25ad6fb28 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ca.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ca.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "àfar", "ab": "abkhaz", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ce.json b/src/Symfony/Component/Intl/Resources/data/languages/ce.json index fa836974e27c5..0e1eec1c00eff 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ce.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ce.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афарийн", "ab": "абхазхойн", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/cs.json b/src/Symfony/Component/Intl/Resources/data/languages/cs.json index 78a8053921287..7e5e48c4884d6 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/cs.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/cs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "aa": "afarština", "ab": "abcházština", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/cy.json b/src/Symfony/Component/Intl/Resources/data/languages/cy.json index ac9186dd10a1e..0cd62e8301642 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/cy.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/cy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Affareg", "ab": "Abchaseg", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/da.json b/src/Symfony/Component/Intl/Resources/data/languages/da.json index 712f8d9ea9761..c48507fa96fe4 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/da.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/da.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhasisk", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/de.json b/src/Symfony/Component/Intl/Resources/data/languages/de.json index 7105b07435540..e226ecd5dd363 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/de.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/de.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.41", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abchasisch", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/dz.json b/src/Symfony/Component/Intl/Resources/data/languages/dz.json index d3e9af9252400..99064b1b69c71 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/dz.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/dz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "aa": "ཨ་ཕར་ཁ", "ab": "ཨཱབ་ཁ་ཟི་ཡ་ཁ", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ee.json b/src/Symfony/Component/Intl/Resources/data/languages/ee.json index 02ae68425ac55..c86ed87834f8a 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ee.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ee.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "ab": "abkhaziagbe", "af": "afrikaangbe", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/el.json b/src/Symfony/Component/Intl/Resources/data/languages/el.json index ed4ff61b6ad0d..50ec641b64472 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/el.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/el.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "Αφάρ", "ab": "Αμπχαζικά", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/en.json b/src/Symfony/Component/Intl/Resources/data/languages/en.json index b2c53f95f0099..596b52cbd3473 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/en.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/en.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abkhazian", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/es.json b/src/Symfony/Component/Intl/Resources/data/languages/es.json index a85beff7bfd86..51c61b6c14b24 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/es.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/es.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abjasio", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/es_VE.json b/src/Symfony/Component/Intl/Resources/data/languages/es_VE.json index 46ba3c939bd07..d1cecf3592ff4 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/es_VE.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/es_VE.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.39", + "Version": "2.1.41.97", "Names": { "ace": "acehnés", "arp": "arapaho", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/et.json b/src/Symfony/Component/Intl/Resources/data/languages/et.json index e4878042dc918..5cbddcc43ed57 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/et.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/et.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afari", "ab": "abhaasi", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/eu.json b/src/Symfony/Component/Intl/Resources/data/languages/eu.json index 6bb031663af82..c5e2adaf694ec 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/eu.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/eu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afarera", "ab": "abkhaziera", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/fa.json b/src/Symfony/Component/Intl/Resources/data/languages/fa.json index 1386cbf2057b1..d19fb09a45813 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/fa.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/fa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "آفاری", "ab": "آبخازی", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/fi.json b/src/Symfony/Component/Intl/Resources/data/languages/fi.json index 92c76d383e07f..decaff2fd2ace 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/fi.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/fi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abhaasi", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/fo.json b/src/Symfony/Component/Intl/Resources/data/languages/fo.json index 6233854155b63..2e4e561b5ac67 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/fo.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/fo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhasiskt", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/fr.json b/src/Symfony/Component/Intl/Resources/data/languages/fr.json index 6dad4dee7c09a..174ed51770a0a 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/fr.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/fr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhaze", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/fy.json b/src/Symfony/Component/Intl/Resources/data/languages/fy.json index 7e03caf51457b..5f561e410e20d 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/fy.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/fy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abchazysk", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ga.json b/src/Symfony/Component/Intl/Resources/data/languages/ga.json index 94f03252e7786..6de0c3082ca56 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ga.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ga.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Afáiris", "ab": "Abcáisis", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/gd.json b/src/Symfony/Component/Intl/Resources/data/languages/gd.json index e77e30b6cbf69..c38995e302df2 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/gd.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/gd.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abchasais", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/gl.json b/src/Symfony/Component/Intl/Resources/data/languages/gl.json index db5daf4d0b487..ae35f802af045 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/gl.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/gl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhazo", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/gu.json b/src/Symfony/Component/Intl/Resources/data/languages/gu.json index ad2701714e69a..41e06526a36e8 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/gu.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/gu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "અફાર", "ab": "અબખાજિયન", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/he.json b/src/Symfony/Component/Intl/Resources/data/languages/he.json index 04cc4c84cb3ec..c09e9012ba0e6 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/he.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/he.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "אפארית", "ab": "אבחזית", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/hi.json b/src/Symfony/Component/Intl/Resources/data/languages/hi.json index 515338e21869d..fb840c01e3e48 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/hi.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/hi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "अफ़ार", "ab": "अब्ख़ाज़ियन", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/hr.json b/src/Symfony/Component/Intl/Resources/data/languages/hr.json index 29539ba1824ca..2a9d518bb5987 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/hr.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/hr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afarski", "ab": "abhaski", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/hu.json b/src/Symfony/Component/Intl/Resources/data/languages/hu.json index 3b8010f6d8318..f988b6db2a309 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/hu.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/hu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abház", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/hy.json b/src/Symfony/Component/Intl/Resources/data/languages/hy.json index 4cf3f7127a594..0d10b798ae051 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/hy.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/hy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "աֆարերեն", "ab": "աբխազերեն", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/id.json b/src/Symfony/Component/Intl/Resources/data/languages/id.json index e50e515ab23f6..7e5a6d6e027f8 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/id.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/id.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abkhaz", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/in.json b/src/Symfony/Component/Intl/Resources/data/languages/in.json index e50e515ab23f6..7e5a6d6e027f8 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/in.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/in.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abkhaz", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/is.json b/src/Symfony/Component/Intl/Resources/data/languages/is.json index 050b4f8a1d64d..3380c99e2c535 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/is.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/is.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afár", "ab": "abkasíska", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/it.json b/src/Symfony/Component/Intl/Resources/data/languages/it.json index d1ca80bee9a18..23631e1b7bb15 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/it.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/it.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.40", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abcaso", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/iw.json b/src/Symfony/Component/Intl/Resources/data/languages/iw.json index 04cc4c84cb3ec..c09e9012ba0e6 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/iw.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/iw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "אפארית", "ab": "אבחזית", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ja.json b/src/Symfony/Component/Intl/Resources/data/languages/ja.json index 847ea3d037d8a..b9563b04be11f 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ja.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ja.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "アファル語", "ab": "アブハズ語", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ka.json b/src/Symfony/Component/Intl/Resources/data/languages/ka.json index 4d86d0d61cfb3..7f316a6c4a099 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ka.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ka.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "აფარი", "ab": "აფხაზური", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/kk.json b/src/Symfony/Component/Intl/Resources/data/languages/kk.json index cfc94c0671048..d7734f1d8801e 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/kk.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/kk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афар тілі", "ab": "абхаз тілі", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/km.json b/src/Symfony/Component/Intl/Resources/data/languages/km.json index 5d3a8f5889407..db01ecfaf208e 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/km.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/km.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "អាហ្វារ", "ab": "អាប់ខាហ៊្សាន", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/kn.json b/src/Symfony/Component/Intl/Resources/data/languages/kn.json index 620f471c4916f..b3b358898bf29 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/kn.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/kn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "ಅಫಾರ್", "ab": "ಅಬ್ಖಾಜಿಯನ್", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ko.json b/src/Symfony/Component/Intl/Resources/data/languages/ko.json index 5d669f96d0d2e..7534f313b8c11 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ko.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ko.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "아파르어", "ab": "압카즈어", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ks.json b/src/Symfony/Component/Intl/Resources/data/languages/ks.json index 0946840f012ad..76ae0a0f9cce6 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ks.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ks.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "اَفار", "ab": "اَبخازِیان", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ky.json b/src/Symfony/Component/Intl/Resources/data/languages/ky.json index 7694f60e094fd..429e9bde6e935 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ky.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ky.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афарча", "ab": "абхазча", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/lb.json b/src/Symfony/Component/Intl/Resources/data/languages/lb.json index 9bdc36212f0e1..c64f92b1a073d 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/lb.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/lb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abchasesch", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/lo.json b/src/Symfony/Component/Intl/Resources/data/languages/lo.json index 132a421fc5b98..2b84dccb71d2b 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/lo.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/lo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "ອະຟາ", "ab": "ແອບຄາຊຽນ", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/lt.json b/src/Symfony/Component/Intl/Resources/data/languages/lt.json index 8fa93ba498fd5..708997ccee018 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/lt.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/lt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afarų", "ab": "abchazų", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/lv.json b/src/Symfony/Component/Intl/Resources/data/languages/lv.json index 2ab15373a2583..e1d309fa1903b 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/lv.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/lv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afāru", "ab": "abhāzu", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/meta.json b/src/Symfony/Component/Intl/Resources/data/languages/meta.json index 0dfe57fd6be22..db24a0f675645 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/meta.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/meta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.58", "Languages": [ "aa", "ab", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/mk.json b/src/Symfony/Component/Intl/Resources/data/languages/mk.json index 5bd7db58709d3..fbc7c30c386e5 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/mk.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/mk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афарски", "ab": "апхаски", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ml.json b/src/Symfony/Component/Intl/Resources/data/languages/ml.json index eadd084be9348..ad2ab3ea9437d 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ml.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ml.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "അഫാർ", "ab": "അബ്‌ഖാസിയൻ", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/mn.json b/src/Symfony/Component/Intl/Resources/data/languages/mn.json index cd1240747d375..d1d9ff69db00e 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/mn.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/mn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афар", "ab": "абхаз", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/mr.json b/src/Symfony/Component/Intl/Resources/data/languages/mr.json index 10e0209306859..0d258d5098320 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/mr.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/mr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "अफार", "ab": "अबखेजियन", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ms.json b/src/Symfony/Component/Intl/Resources/data/languages/ms.json index 5449f09742e34..c4aab246c9a68 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ms.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ms.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abkhazia", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/mt.json b/src/Symfony/Component/Intl/Resources/data/languages/mt.json index 44562555857c3..2072eba467ecc 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/mt.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/mt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abkażjan", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/my.json b/src/Symfony/Component/Intl/Resources/data/languages/my.json index 77101f6ca21c1..2ec10914b5677 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/my.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/my.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "အာဖာ", "ab": "အဘ်ခါဇီရာ", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/nb.json b/src/Symfony/Component/Intl/Resources/data/languages/nb.json index 88940b15d6468..532ba060df714 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/nb.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/nb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhasisk", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ne.json b/src/Symfony/Component/Intl/Resources/data/languages/ne.json index f1fed6bf6a008..01b8072739e64 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ne.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ne.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "अफार", "ab": "अब्खाजियाली", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/nl.json b/src/Symfony/Component/Intl/Resources/data/languages/nl.json index ec05edacb6b1f..961a1b5b185e2 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/nl.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/nl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abchazisch", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/nn.json b/src/Symfony/Component/Intl/Resources/data/languages/nn.json index 1935b6ba292a4..43db86fb181f2 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/nn.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/nn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhasisk", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/no.json b/src/Symfony/Component/Intl/Resources/data/languages/no.json index 88940b15d6468..532ba060df714 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/no.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/no.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abkhasisk", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/or.json b/src/Symfony/Component/Intl/Resources/data/languages/or.json index 010dc7ece7310..c59f26147ba3a 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/or.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/or.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "ଅଫାର୍", "ab": "ଆବ୍ଖାଜିଆନ୍", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/pa.json b/src/Symfony/Component/Intl/Resources/data/languages/pa.json index 026c7f1018f9e..633834d93be04 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/pa.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/pa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "ਅਫ਼ਾਰ", "ab": "ਅਬਖਾਜ਼ੀਅਨ", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/pl.json b/src/Symfony/Component/Intl/Resources/data/languages/pl.json index 88750fb79628d..13d114b92d43d 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/pl.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/pl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abchaski", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ps.json b/src/Symfony/Component/Intl/Resources/data/languages/ps.json index ae2473da778f1..c85eebb6c8af1 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ps.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ps.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "افري", "ab": "ابخازي", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/pt.json b/src/Symfony/Component/Intl/Resources/data/languages/pt.json index 349a5036b298e..9c946026febf6 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/pt.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/pt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abcázio", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.json b/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.json index 73437eb95f0cb..25c4663b2c7a7 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/pt_PT.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "af": "africanês", "ang": "inglês antigo", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/rm.json b/src/Symfony/Component/Intl/Resources/data/languages/rm.json index 8fb029c0add76..3db839d3c63fa 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/rm.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/rm.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abchasian", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ro.json b/src/Symfony/Component/Intl/Resources/data/languages/ro.json index 1f5d01dfe285d..f44554a2022e5 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ro.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ro.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abhază", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ru.json b/src/Symfony/Component/Intl/Resources/data/languages/ru.json index 8925868d0d0bf..8361b8a53e7e7 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ru.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ru.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "афарский", "ab": "абхазский", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sh.json b/src/Symfony/Component/Intl/Resources/data/languages/sh.json index 550fd7a28071b..0207d42669f64 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sh.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "aa": "afarski", "ab": "abhaski", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/si.json b/src/Symfony/Component/Intl/Resources/data/languages/si.json index 55452edfe4e8c..8886ec01c100e 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/si.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/si.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "අෆාර්", "ab": "ඇබ්කාසියානු", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sk.json b/src/Symfony/Component/Intl/Resources/data/languages/sk.json index eac02f59857f7..309516348e4d5 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sk.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afarčina", "ab": "abcházčina", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sl.json b/src/Symfony/Component/Intl/Resources/data/languages/sl.json index 4a4c320aa806d..7a20c2d1569be 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sl.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afarščina", "ab": "abhaščina", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sq.json b/src/Symfony/Component/Intl/Resources/data/languages/sq.json index 49cdabfe7e184..f59a6d2c31295 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sq.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sq.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afarisht", "ab": "abkazisht", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sr.json b/src/Symfony/Component/Intl/Resources/data/languages/sr.json index f71e9eb42f3b6..68bd971a8c2e8 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sr.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "афарски", "ab": "абхаски", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.json b/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.json index 550fd7a28071b..0207d42669f64 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sr_Latn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "aa": "afarski", "ab": "abhaski", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sv.json b/src/Symfony/Component/Intl/Resources/data/languages/sv.json index a70f7dd9e63ae..3182aa19ae27a 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sv.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abchaziska", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/sw.json b/src/Symfony/Component/Intl/Resources/data/languages/sw.json index 5ca303c5d7f58..da50b43e93e33 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/sw.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/sw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Kiafar", "ab": "Kiabkhazi", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ta.json b/src/Symfony/Component/Intl/Resources/data/languages/ta.json index 2fa91ee1061c0..fbad1dc9ad806 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ta.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "அஃபார்", "ab": "அப்காஜியான்", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/te.json b/src/Symfony/Component/Intl/Resources/data/languages/te.json index deb01580bd80e..0c9aa4a04843e 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/te.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/te.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "అఫార్", "ab": "అబ్ఖాజియన్", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/th.json b/src/Symfony/Component/Intl/Resources/data/languages/th.json index b6975b84724be..a4cc9b59586e4 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/th.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/th.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "อะฟาร์", "ab": "อับฮาเซีย", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/tl.json b/src/Symfony/Component/Intl/Resources/data/languages/tl.json index b42541207d16f..e81d9a7a6f0ba 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/tl.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/tl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abkhazian", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/tr.json b/src/Symfony/Component/Intl/Resources/data/languages/tr.json index 8962eac5947d5..5ed8aa1cc15af 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/tr.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/tr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "Afar", "ab": "Abhazca", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ug.json b/src/Symfony/Component/Intl/Resources/data/languages/ug.json index de0f5c582b976..33f941b962943 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ug.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ug.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "ئافارچە", "ab": "ئابخازچە", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/uk.json b/src/Symfony/Component/Intl/Resources/data/languages/uk.json index 57a44efaa7efe..9d76f9f4f9e06 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/uk.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/uk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "афарська", "ab": "абхазька", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/ur.json b/src/Symfony/Component/Intl/Resources/data/languages/ur.json index b41f6b510f4ce..20cc35032e85e 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/ur.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/ur.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "افار", "ab": "ابقازیان", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/uz.json b/src/Symfony/Component/Intl/Resources/data/languages/uz.json index e7024c28bde3a..7133307bbff2c 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/uz.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/uz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "afar", "ab": "abxaz", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/uz_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/languages/uz_Cyrl.json index 42e9d729b5565..cffed94258c4b 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/uz_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/uz_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "aa": "афарча", "ab": "абхазча", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/vi.json b/src/Symfony/Component/Intl/Resources/data/languages/vi.json index 4523ebba98b5a..4a4b649898d60 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/vi.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/vi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "Tiếng Afar", "ab": "Tiếng Abkhazia", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/zh.json b/src/Symfony/Component/Intl/Resources/data/languages/zh.json index a4fdf9b84dd84..e9a4724e0a6d5 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/zh.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/zh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "阿法尔语", "ab": "阿布哈西亚语", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.json b/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.json index b10c40624a6af..1b6c35ddffdb3 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/zh_Hant.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "aa": "阿法文", "ab": "阿布哈茲文", diff --git a/src/Symfony/Component/Intl/Resources/data/languages/zu.json b/src/Symfony/Component/Intl/Resources/data/languages/zu.json index a10d135133362..e536c98d3462f 100644 --- a/src/Symfony/Component/Intl/Resources/data/languages/zu.json +++ b/src/Symfony/Component/Intl/Resources/data/languages/zu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "aa": "isi-Afar", "ab": "isi-Abkhazian", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/af.json b/src/Symfony/Component/Intl/Resources/data/regions/af.json index 1c9d008592ee2..2b280fd249db1 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/af.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/af.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascensioneiland", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/am.json b/src/Symfony/Component/Intl/Resources/data/regions/am.json index eacb4cad2b7d0..0936881e34dd1 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/am.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/am.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "አሴንሽን ደሴት", "AD": "አንዶራ", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ar.json b/src/Symfony/Component/Intl/Resources/data/regions/ar.json index 00a3034237098..93ce837ca1ecd 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ar.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ar.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "جزيرة أسينشيون", "AD": "أندورا", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/as.json b/src/Symfony/Component/Intl/Resources/data/regions/as.json index 7a8dca9572a23..50baeecf10cc0 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/as.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/as.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "এচেনচিয়ন দ্বীপ", "AD": "আন্দোৰা", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/az.json b/src/Symfony/Component/Intl/Resources/data/regions/az.json index cbbac809fdd5e..2bc9b27e4b692 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/az.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/az.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Askenson adası", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/be.json b/src/Symfony/Component/Intl/Resources/data/regions/be.json index ca044fa291599..916a0653e726f 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/be.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/be.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Востраў Узнясення", "AD": "Андора", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/bg.json b/src/Symfony/Component/Intl/Resources/data/regions/bg.json index 1a1a657bf5642..0a4de0c69eb56 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/bg.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/bg.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "остров Възнесение", "AD": "Андора", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/bn.json b/src/Symfony/Component/Intl/Resources/data/regions/bn.json index 2421034c6f596..35626e5519c09 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/bn.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/bn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "অ্যাসসেনশন আইল্যান্ড", "AD": "আন্ডোরা", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/br.json b/src/Symfony/Component/Intl/Resources/data/regions/br.json index 8bebb1ca0c51a..5f1bdd18120d2 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/br.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/br.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Enez Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/bs.json b/src/Symfony/Component/Intl/Resources/data/regions/bs.json index a73a81e738515..a923f5fd90c29 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/bs.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/bs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ostrvo Ascension", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.json index 39413c42b856e..76c673b03b2ae 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/bs_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Острво Асенсион", "AD": "Андора", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ca.json b/src/Symfony/Component/Intl/Resources/data/regions/ca.json index c6c6fcd042854..50a0177b4d7d2 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ca.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ca.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Illa de l’Ascensió", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ce.json b/src/Symfony/Component/Intl/Resources/data/regions/ce.json index 86aa0341ab433..934580a09914e 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ce.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ce.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Айъадаларан гӀайре", "AD": "Андорра", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/cs.json b/src/Symfony/Component/Intl/Resources/data/regions/cs.json index 9d6899289ceee..68eea5b4ac7b9 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/cs.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/cs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/cy.json b/src/Symfony/Component/Intl/Resources/data/regions/cy.json index b707a2dd7143f..caa829ed16014 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/cy.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/cy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ynys Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/da.json b/src/Symfony/Component/Intl/Resources/data/regions/da.json index 7994d129c6334..ef8b2658a839a 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/da.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/da.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascensionøen", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/de.json b/src/Symfony/Component/Intl/Resources/data/regions/de.json index c13a9edb986d1..b521ae4bc511e 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/de.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/de.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.41", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/dz.json b/src/Symfony/Component/Intl/Resources/data/regions/dz.json index e2e292ad0bc21..9d20f23af3cf3 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/dz.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/dz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "AC": "ཨེ་སེན་ཤུན་ཚོ་གླིང༌", "AD": "ཨཱན་དོ་ར", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ee.json b/src/Symfony/Component/Intl/Resources/data/regions/ee.json index 53cef01b73e07..5b1f0fd5ab031 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ee.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ee.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension ƒudomekpo nutome", "AD": "Andorra nutome", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/el.json b/src/Symfony/Component/Intl/Resources/data/regions/el.json index a470d7b6ebeb7..447264e8c6ebc 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/el.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/el.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Νήσος Ασενσιόν", "AD": "Ανδόρα", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/en.json b/src/Symfony/Component/Intl/Resources/data/regions/en.json index c8f3cb77d6aef..74663075241bc 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/en.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/en.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.97", "Names": { "AC": "Ascension Island", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/es.json b/src/Symfony/Component/Intl/Resources/data/regions/es.json index 083058458e3ac..3369ed0e0b945 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/es.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/es.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Isla de la Ascensión", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/es_VE.json b/src/Symfony/Component/Intl/Resources/data/regions/es_VE.json index 7685c507e39a4..e1b997480707f 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/es_VE.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/es_VE.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.39", + "Version": "2.1.41.97", "Names": { "BA": "Bosnia y Herzegovina", "TA": "Tristán de Acuña", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/et.json b/src/Symfony/Component/Intl/Resources/data/regions/et.json index 154c8ff11a5cf..e22adf5ffddb6 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/et.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/et.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascensioni saar", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/eu.json b/src/Symfony/Component/Intl/Resources/data/regions/eu.json index a345bca3a249a..9df3ed11c06c5 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/eu.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/eu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension uhartea", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/fa.json b/src/Symfony/Component/Intl/Resources/data/regions/fa.json index 3c020d7857dd1..fb2ac4af4cc69 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/fa.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/fa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "جزایر آسنسیون", "AD": "آندورا", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/fi.json b/src/Symfony/Component/Intl/Resources/data/regions/fi.json index e8971298fdeb6..4ba9dcd1e77a3 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/fi.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/fi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascension-saari", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/fo.json b/src/Symfony/Component/Intl/Resources/data/regions/fo.json index e90c49b51210c..8459fc4314f81 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/fo.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/fo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/fr.json b/src/Symfony/Component/Intl/Resources/data/regions/fr.json index 352312636665a..17184b5d4f503 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/fr.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/fr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Île de l’Ascension", "AD": "Andorre", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/fy.json b/src/Symfony/Component/Intl/Resources/data/regions/fy.json index bf816d5542776..e307781e9f8dc 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/fy.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/fy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ga.json b/src/Symfony/Component/Intl/Resources/data/regions/ga.json index 502e88e65f9cb..ba938a53c13d6 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ga.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ga.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Oileán na Deascabhála", "AD": "Andóra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/gd.json b/src/Symfony/Component/Intl/Resources/data/regions/gd.json index 7c42b18affe39..6844ad29d3c84 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/gd.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/gd.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Eilean na Deasgabhalach", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/gl.json b/src/Symfony/Component/Intl/Resources/data/regions/gl.json index f2c95c3ec25ae..e6f23e88f5bed 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/gl.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/gl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Illa de Ascensión", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/gu.json b/src/Symfony/Component/Intl/Resources/data/regions/gu.json index a588299ce9772..d3e310380bcd4 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/gu.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/gu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "એસેન્શન આઇલેન્ડ", "AD": "ઍંડોરા", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/he.json b/src/Symfony/Component/Intl/Resources/data/regions/he.json index cf28a392f2cf0..ce12c7030efa7 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/he.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/he.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "האי אסנשן", "AD": "אנדורה", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/hi.json b/src/Symfony/Component/Intl/Resources/data/regions/hi.json index d21917284cdec..3cb506ce25115 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/hi.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/hi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "असेंशन द्वीप", "AD": "एंडोरा", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/hr.json b/src/Symfony/Component/Intl/Resources/data/regions/hr.json index d95a4b9dd8301..b086e081de377 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/hr.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/hr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Otok Ascension", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/hu.json b/src/Symfony/Component/Intl/Resources/data/regions/hu.json index 64fd49c62639f..badd300ee33e6 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/hu.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/hu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascension-sziget", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/hy.json b/src/Symfony/Component/Intl/Resources/data/regions/hy.json index e24bc7e9dc446..08be7f38349f0 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/hy.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/hy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Համբարձման կղզի", "AD": "Անդորրա", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/id.json b/src/Symfony/Component/Intl/Resources/data/regions/id.json index 35ce14d8b9e74..552825ccdffd1 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/id.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/id.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Pulau Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/in.json b/src/Symfony/Component/Intl/Resources/data/regions/in.json index 35ce14d8b9e74..552825ccdffd1 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/in.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/in.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Pulau Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/is.json b/src/Symfony/Component/Intl/Resources/data/regions/is.json index 2e58c99e291ef..db171546d2bff 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/is.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/is.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension-eyja", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/it.json b/src/Symfony/Component/Intl/Resources/data/regions/it.json index fe6e7438d6245..865a31a6accbd 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/it.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/it.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.40", + "Version": "2.1.41.97", "Names": { "AC": "Isola Ascensione", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/iw.json b/src/Symfony/Component/Intl/Resources/data/regions/iw.json index cf28a392f2cf0..ce12c7030efa7 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/iw.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/iw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "האי אסנשן", "AD": "אנדורה", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ja.json b/src/Symfony/Component/Intl/Resources/data/regions/ja.json index a5ccf21526ed5..511a6bde6573f 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ja.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ja.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "アセンション島", "AD": "アンドラ", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ka.json b/src/Symfony/Component/Intl/Resources/data/regions/ka.json index 059c01949e569..861ca2ea951ac 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ka.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ka.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "ამაღლების კუნძული", "AD": "ანდორა", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/kk.json b/src/Symfony/Component/Intl/Resources/data/regions/kk.json index 8cd36f18ca83d..0c6e912947b2e 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/kk.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/kk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Әскенжін аралы", "AD": "Андорра", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/km.json b/src/Symfony/Component/Intl/Resources/data/regions/km.json index 05c5092091519..50d149e55e0dc 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/km.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/km.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "កោះ​អាសេនសិន", "AD": "អង់ដូរ៉ា", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/kn.json b/src/Symfony/Component/Intl/Resources/data/regions/kn.json index 548183e2ff7ee..0265e4f39be72 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/kn.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/kn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "ಅಸೆನ್ಶನ್ ದ್ವೀಪ", "AD": "ಅಂಡೋರಾ", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ko.json b/src/Symfony/Component/Intl/Resources/data/regions/ko.json index 1fb1a39b0b31f..e33d48d1b9deb 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ko.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ko.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "어센션 섬", "AD": "안도라", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ks.json b/src/Symfony/Component/Intl/Resources/data/regions/ks.json index 6c0da75828d99..a956c7a3b79e7 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ks.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ks.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AD": "اٮ۪نڑورا", "AE": "مُتحدہ عرَب امارات", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ky.json b/src/Symfony/Component/Intl/Resources/data/regions/ky.json index 33ae2611291e2..e3acf4db41793 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ky.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ky.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Вознесение аралы", "AD": "Андорра", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/lb.json b/src/Symfony/Component/Intl/Resources/data/regions/lb.json index 0245d11143561..612f2e856b1bc 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/lb.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/lb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/lo.json b/src/Symfony/Component/Intl/Resources/data/regions/lo.json index 7756792ab9f81..8de0bb9006954 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/lo.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/lo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "ເກາະອາເຊນຊັນ", "AD": "ອັນດໍຣາ", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/lt.json b/src/Symfony/Component/Intl/Resources/data/regions/lt.json index 59370d64af771..d3d868d21ec1c 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/lt.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/lt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Dangun Žengimo sala", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/lv.json b/src/Symfony/Component/Intl/Resources/data/regions/lv.json index df0e0c598b373..a5d6739a27730 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/lv.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/lv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Debesbraukšanas sala", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/meta.json b/src/Symfony/Component/Intl/Resources/data/regions/meta.json index 578d7f6734895..9dbe566037405 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/meta.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/meta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.58", "Regions": [ "AC", "AD", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/mk.json b/src/Symfony/Component/Intl/Resources/data/regions/mk.json index b03d2f47c21ca..d03ade1157a73 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/mk.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/mk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Остров Асенсион", "AD": "Андора", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ml.json b/src/Symfony/Component/Intl/Resources/data/regions/ml.json index 79fc31e42cb1f..54e7f6568d3a4 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ml.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ml.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "അസൻഷൻ ദ്വീപ്", "AD": "അൻഡോറ", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/mn.json b/src/Symfony/Component/Intl/Resources/data/regions/mn.json index f92b045b0c784..f32d2000b4a11 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/mn.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/mn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Асенсион арал", "AD": "Андорра", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/mr.json b/src/Symfony/Component/Intl/Resources/data/regions/mr.json index a957a87625cf5..f80e64ff770d3 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/mr.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/mr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "अ‍ॅसेन्शियन बेट", "AD": "अँडोरा", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ms.json b/src/Symfony/Component/Intl/Resources/data/regions/ms.json index 3d33e9a15c6e7..a5b9fae212e0f 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ms.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ms.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Pulau Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/mt.json b/src/Symfony/Component/Intl/Resources/data/regions/mt.json index f9fae72c2d575..43e92dba5f961 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/mt.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/mt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension Island", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/my.json b/src/Symfony/Component/Intl/Resources/data/regions/my.json index 85d06b918aeda..73946f0ac61fa 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/my.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/my.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "အဆန်းရှင်းကျွန်း", "AD": "အန်ဒိုရာ", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/nb.json b/src/Symfony/Component/Intl/Resources/data/regions/nb.json index 4964dded5ac09..ad15e817644d3 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/nb.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/nb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ne.json b/src/Symfony/Component/Intl/Resources/data/regions/ne.json index a07e675da7693..a72f1fdccf6ea 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ne.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ne.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "एस्केन्सन टापु", "AD": "अन्डोर्रा", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/nl.json b/src/Symfony/Component/Intl/Resources/data/regions/nl.json index e5546b299c379..a57efb1b355b2 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/nl.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/nl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/nn.json b/src/Symfony/Component/Intl/Resources/data/regions/nn.json index 86dd61e79a253..60e95611cf146 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/nn.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/nn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/no.json b/src/Symfony/Component/Intl/Resources/data/regions/no.json index 4964dded5ac09..ad15e817644d3 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/no.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/no.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/or.json b/src/Symfony/Component/Intl/Resources/data/regions/or.json index 21fa28f03aa99..c7d9d4c46118a 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/or.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/or.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "ଆସେନସିଅନ୍‌ ଦ୍ୱୀପ", "AD": "ଆଣ୍ଡୋରା", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/pa.json b/src/Symfony/Component/Intl/Resources/data/regions/pa.json index a9d8a7e678f27..206bf55846097 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/pa.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/pa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "ਅਸੈਂਸ਼ਨ ਟਾਪੂ", "AD": "ਅੰਡੋਰਾ", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/pl.json b/src/Symfony/Component/Intl/Resources/data/regions/pl.json index 26905881d6bbc..9abb131f316fd 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/pl.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/pl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "AC": "Wyspa Wniebowstąpienia", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ps.json b/src/Symfony/Component/Intl/Resources/data/regions/ps.json index cdca91ad7bacf..03675445edcd4 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ps.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ps.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "د توغندیو ټاپو", "AD": "اندورا", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/pt.json b/src/Symfony/Component/Intl/Resources/data/regions/pt.json index a6981a0078a37..6bf9bf4269523 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/pt.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/pt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ilha de Ascensão", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.json b/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.json index b0223880bbc33..38c9ce880b379 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/pt_PT.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AI": "Anguila", "AM": "Arménia", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/rm.json b/src/Symfony/Component/Intl/Resources/data/regions/rm.json index 54d63c4554e30..7313a024c93c2 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/rm.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/rm.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AD": "Andorra", "AE": "Emirats Arabs Unids", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ro.json b/src/Symfony/Component/Intl/Resources/data/regions/ro.json index eed24364b6b3d..76157267588b0 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ro.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ro.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Insula Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ru.json b/src/Symfony/Component/Intl/Resources/data/regions/ru.json index f54e92257c105..3b172ca715175 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ru.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ru.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "о-в Вознесения", "AD": "Андорра", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sh.json b/src/Symfony/Component/Intl/Resources/data/regions/sh.json index 39cb5e416c26c..e8b664995118a 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sh.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "AC": "Ostrvo Asension", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/si.json b/src/Symfony/Component/Intl/Resources/data/regions/si.json index bf5c723f46dce..9975aeec7d45f 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/si.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/si.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "ඇසෙන්ෂන් දිවයින", "AD": "ඇන්ඩෝරාව", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sk.json b/src/Symfony/Component/Intl/Resources/data/regions/sk.json index 86a8c5ad1a08f..0bba0649a8f31 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sk.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sl.json b/src/Symfony/Component/Intl/Resources/data/regions/sl.json index d77fbb0f87428..c84a219667d13 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sl.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Otok Ascension", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sq.json b/src/Symfony/Component/Intl/Resources/data/regions/sq.json index 7b6bd3e95a3fb..af82944add734 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sq.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sq.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Ishulli Asenshion", "AD": "Andorrë", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sr.json b/src/Symfony/Component/Intl/Resources/data/regions/sr.json index 26232a598cb38..125467cbb16d4 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sr.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Острво Асенсион", "AD": "Андора", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.json b/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.json index 39cb5e416c26c..e8b664995118a 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sr_Latn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "AC": "Ostrvo Asension", "AD": "Andora", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sv.json b/src/Symfony/Component/Intl/Resources/data/regions/sv.json index af919a86b366e..5801373a61caa 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sv.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/sw.json b/src/Symfony/Component/Intl/Resources/data/regions/sw.json index 78eebdaa8979d..2cb97478b9b35 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/sw.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/sw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Kisiwa cha Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ta.json b/src/Symfony/Component/Intl/Resources/data/regions/ta.json index 440df72d4f18f..0cc6b2e94f282 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ta.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "அஷன்ஷியன் தீவு", "AD": "அன்டோரா", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/te.json b/src/Symfony/Component/Intl/Resources/data/regions/te.json index 25dd319333cc2..e845e339bfb40 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/te.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/te.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "అసెన్షన్ దీవి", "AD": "ఆండోరా", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/th.json b/src/Symfony/Component/Intl/Resources/data/regions/th.json index 8230d31f7e084..3317bbc7543e0 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/th.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/th.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "เกาะแอสเซนชัน", "AD": "อันดอร์รา", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/tl.json b/src/Symfony/Component/Intl/Resources/data/regions/tl.json index 23e34fc5f91b3..19554b3f88089 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/tl.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/tl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Acsencion island", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/tr.json b/src/Symfony/Component/Intl/Resources/data/regions/tr.json index 79d8c1aec0a6e..6e12bc5f1f1be 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/tr.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/tr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Ascension Adası", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ug.json b/src/Symfony/Component/Intl/Resources/data/regions/ug.json index f338015e9fc3e..0a878d99d3f91 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ug.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ug.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "ئاسسېنسىيون ئارىلى", "AD": "ئاندوررا", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/uk.json b/src/Symfony/Component/Intl/Resources/data/regions/uk.json index a47cb392c1e3a..5ddda82648360 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/uk.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/uk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Острів Вознесіння", "AD": "Андорра", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/ur.json b/src/Symfony/Component/Intl/Resources/data/regions/ur.json index c23df5b5407cc..f315ffdedf7bf 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/ur.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/ur.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "اسینشن آئلینڈ", "AD": "انڈورا", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/uz.json b/src/Symfony/Component/Intl/Resources/data/regions/uz.json index a93829d4ef9d3..ab2ddfc66edff 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/uz.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/uz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "Me’roj oroli", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.json index 57020b5386d28..1612ed7a620ba 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/uz_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "AC": "Меърож ороли", "AD": "Андорра", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/vi.json b/src/Symfony/Component/Intl/Resources/data/regions/vi.json index f49cb2b04f86e..4d286235a8b53 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/vi.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/vi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "Đảo Ascension", "AD": "Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/zh.json b/src/Symfony/Component/Intl/Resources/data/regions/zh.json index 4ecff448955ef..4fc172b7647ad 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/zh.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/zh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "阿森松岛", "AD": "安道尔", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.json b/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.json index f7cefb9282ab2..1b7ef475ad1e1 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/zh_Hant.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "AC": "阿森松島", "AD": "安道爾", diff --git a/src/Symfony/Component/Intl/Resources/data/regions/zu.json b/src/Symfony/Component/Intl/Resources/data/regions/zu.json index bfc219a289604..e92b1858c0684 100644 --- a/src/Symfony/Component/Intl/Resources/data/regions/zu.json +++ b/src/Symfony/Component/Intl/Resources/data/regions/zu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "AC": "i-Ascension Island", "AD": "i-Andorra", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/af.json b/src/Symfony/Component/Intl/Resources/data/scripts/af.json index a673f0160c35c..7b7ad30ae02f6 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/af.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/af.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Arabies", "Armn": "Armeens", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/am.json b/src/Symfony/Component/Intl/Resources/data/scripts/am.json index 78cb36500b713..946002b557603 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/am.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/am.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "ዓረብኛ", "Armn": "አርሜንያዊ", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ar.json b/src/Symfony/Component/Intl/Resources/data/scripts/ar.json index d15ce22650fd5..db49535778fbe 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ar.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ar.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "العربية", "Armn": "الأرمينية", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/as.json b/src/Symfony/Component/Intl/Resources/data/scripts/as.json index d7fadb3be12c9..66d86a27f0388 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/as.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/as.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "আৰবী", "Armn": "আৰ্মেনীয়", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/az.json b/src/Symfony/Component/Intl/Resources/data/scripts/az.json index e2a08bc031f77..a325bf271b5bc 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/az.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/az.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "ərəb", "Armi": "armi", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/be.json b/src/Symfony/Component/Intl/Resources/data/scripts/be.json index d56aae85d5bb2..c7d354a9d95ad 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/be.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/be.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "арабскае", "Armn": "армянскае", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/bg.json b/src/Symfony/Component/Intl/Resources/data/scripts/bg.json index e410e101e2ffe..4baea18813dc0 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/bg.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/bg.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "арабска", "Armi": "Арамейска", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/bn.json b/src/Symfony/Component/Intl/Resources/data/scripts/bn.json index 49f615d202024..449e8f786a74a 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/bn.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/bn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "আরবি", "Armi": "আরমি", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/br.json b/src/Symfony/Component/Intl/Resources/data/scripts/br.json index e1eedf62bd2bb..5a16c72c49b5a 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/br.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/br.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Adlm": "adlam", "Arab": "arabek", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/bs.json b/src/Symfony/Component/Intl/Resources/data/scripts/bs.json index 4dc0e7471f36d..5bc9873b0d326 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/bs.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/bs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arapsko pismo", "Armi": "imperijsko aramejsko pismo", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/bs_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/scripts/bs_Cyrl.json index d9d4f6ad85866..7a68e412072ec 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/bs_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/bs_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "арапско писмо", "Armi": "империјско арамејско писмо", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ca.json b/src/Symfony/Component/Intl/Resources/data/scripts/ca.json index 9cf70f5b954cf..71486f5d807bf 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ca.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ca.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Adlm": "adlam", "Afak": "afaka", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ce.json b/src/Symfony/Component/Intl/Resources/data/scripts/ce.json index 5bfa9ed8f99b5..54da177256b8d 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ce.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ce.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Ӏаьрбийн", "Armn": "эрмалойн", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/cs.json b/src/Symfony/Component/Intl/Resources/data/scripts/cs.json index 39e01b99a6bca..34c858cb3c78b 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/cs.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/cs.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "Afak": "afaka", "Aghb": "kavkazskoalbánské", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/cy.json b/src/Symfony/Component/Intl/Resources/data/scripts/cy.json index 4cad1142b15bc..5e735387a9c8e 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/cy.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/cy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Arabaidd", "Armn": "Armenaidd", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/da.json b/src/Symfony/Component/Intl/Resources/data/scripts/da.json index 846ecc4306702..729eabf1712f0 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/da.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/da.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "afaka", "Arab": "arabisk", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/de.json b/src/Symfony/Component/Intl/Resources/data/scripts/de.json index 02fc8a225e35e..d570f5809cd3b 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/de.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/de.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.41", + "Version": "2.1.41.97", "Names": { "Afak": "Afaka", "Aghb": "Kaukasisch-Albanisch", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/dz.json b/src/Symfony/Component/Intl/Resources/data/scripts/dz.json index 9501061a66830..899a48ac97047 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/dz.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/dz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "Arab": "ཨེ་ར་བིཀ་ཡིག་གུ", "Armn": "ཨར་མི་ནི་ཡཱན་ཡིག་གུ", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ee.json b/src/Symfony/Component/Intl/Resources/data/scripts/ee.json index 81cb17c9cbf72..702e84891d54a 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ee.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ee.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Arabiagbeŋɔŋlɔ", "Armn": "armeniagbeŋɔŋlɔ", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/el.json b/src/Symfony/Component/Intl/Resources/data/scripts/el.json index 7032aad04104e..49d9c01dc7e85 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/el.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/el.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "Αραβικό", "Armi": "Αυτοκρατορικό Αραμαϊκό", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/en.json b/src/Symfony/Component/Intl/Resources/data/scripts/en.json index 935fb4ee47f93..67a721b53b579 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/en.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/en.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.97", "Names": { "Adlm": "Adlam", "Afak": "Afaka", @@ -32,6 +32,7 @@ "Cyrl": "Cyrillic", "Cyrs": "Old Church Slavonic Cyrillic", "Deva": "Devanagari", + "Dogr": "Dogra", "Dsrt": "Deseret", "Dupl": "Duployan shorthand", "Egyd": "Egyptian demotic", @@ -42,6 +43,7 @@ "Geok": "Georgian Khutsuri", "Geor": "Georgian", "Glag": "Glagolitic", + "Gong": "Gunjala Gondi", "Gonm": "Masaram Gondi", "Goth": "Gothic", "Gran": "Grantha", @@ -90,10 +92,12 @@ "Lyci": "Lycian", "Lydi": "Lydian", "Mahj": "Mahajani", + "Maka": "Makasar", "Mand": "Mandaean", "Mani": "Manichaean", "Marc": "Marchen", "Maya": "Mayan hieroglyphs", + "Medf": "Medefaidrin", "Mend": "Mende", "Merc": "Meroitic Cursive", "Mero": "Meroitic", @@ -128,6 +132,7 @@ "Plrd": "Pollard Phonetic", "Prti": "Inscriptional Parthian", "Rjng": "Rejang", + "Rohg": "Hanifi Rohingya", "Roro": "Rongorongo", "Runr": "Runic", "Samr": "Samaritan", @@ -140,6 +145,8 @@ "Sidd": "Siddham", "Sind": "Khudawadi", "Sinh": "Sinhala", + "Sogd": "Sogdian", + "Sogo": "Old Sogdian", "Sora": "Sora Sompeng", "Soyo": "Soyombo", "Sund": "Sundanese", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/es.json b/src/Symfony/Component/Intl/Resources/data/scripts/es.json index b174d99fc27c4..c2df3f675c4d9 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/es.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/es.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "árabe", "Armn": "armenio", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/et.json b/src/Symfony/Component/Intl/Resources/data/scripts/et.json index 6b40dff5e7a6a..99821fd0b0105 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/et.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/et.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "afaka", "Aghb": "albaani", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/eu.json b/src/Symfony/Component/Intl/Resources/data/scripts/eu.json index 76eaac574f01a..eba453815a3af 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/eu.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/eu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arabiarra", "Armn": "armeniarra", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/fa.json b/src/Symfony/Component/Intl/Resources/data/scripts/fa.json index 97768fa3793a2..0fb434616c2ec 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/fa.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/fa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Aghb": "آلبانیایی قفقازی", "Arab": "عربی", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/fi.json b/src/Symfony/Component/Intl/Resources/data/scripts/fi.json index d196ed733f059..92eeab3c701f6 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/fi.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/fi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Adlm": "fulanin adlam-aakkosto", "Afak": "afaka", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/fo.json b/src/Symfony/Component/Intl/Resources/data/scripts/fo.json index fc3da37eb38cc..3e0ed3b472e39 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/fo.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/fo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arabisk", "Armn": "armenskt", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/fr.json b/src/Symfony/Component/Intl/Resources/data/scripts/fr.json index a85ad1f164923..e2cf1410304b5 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/fr.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/fr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "arabe", "Armi": "araméen impérial", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/fy.json b/src/Symfony/Component/Intl/Resources/data/scripts/fy.json index 4d6ef0634107e..0429b1fcef6ef 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/fy.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/fy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "Defaka", "Arab": "Arabysk", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ga.json b/src/Symfony/Component/Intl/Resources/data/scripts/ga.json index 68a488b4120a5..8db2c5db56aa1 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ga.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ga.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Adlm": "Adlm", "Aghb": "Albánach Cugasach", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/gd.json b/src/Symfony/Component/Intl/Resources/data/scripts/gd.json index ce25947cd18b8..8d4787f2b3487 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/gd.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/gd.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Adlm": "Adlam", "Afak": "Afaka", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/gl.json b/src/Symfony/Component/Intl/Resources/data/scripts/gl.json index d4cdb034238ec..ba1d4d283876e 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/gl.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/gl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "árabe", "Armn": "armenio", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/gu.json b/src/Symfony/Component/Intl/Resources/data/scripts/gu.json index fe525ef5beb54..c04979ec85c0e 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/gu.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/gu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "અરબી", "Armi": "ઇમ્પિરિયલ આર્મનિક", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/he.json b/src/Symfony/Component/Intl/Resources/data/scripts/he.json index 2212d2185750a..f4bb3eb0bf5b4 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/he.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/he.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "ערבי", "Armn": "ארמני", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/hi.json b/src/Symfony/Component/Intl/Resources/data/scripts/hi.json index 93485a5b03e23..f83c33c0e3b0e 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/hi.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/hi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "अरबी", "Armi": "इम्पिरियल आर्मेनिक", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/hr.json b/src/Symfony/Component/Intl/Resources/data/scripts/hr.json index 106b2ec0d02f7..28c0b7def324d 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/hr.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/hr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "afaka pismo", "Arab": "arapsko pismo", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/hu.json b/src/Symfony/Component/Intl/Resources/data/scripts/hu.json index d616bbb947bea..05eb86e6a5db0 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/hu.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/hu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "Arab", "Armi": "Birodalmi arámi", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/hy.json b/src/Symfony/Component/Intl/Resources/data/scripts/hy.json index f91541fae62df..eb432d3c371b6 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/hy.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/hy.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "արաբական", "Armn": "հայկական", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/id.json b/src/Symfony/Component/Intl/Resources/data/scripts/id.json index 96dba5177ecdb..39971eb283197 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/id.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/id.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "Afaka", "Aghb": "Albania Kaukasia", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/in.json b/src/Symfony/Component/Intl/Resources/data/scripts/in.json index 96dba5177ecdb..39971eb283197 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/in.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/in.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "Afaka", "Aghb": "Albania Kaukasia", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/is.json b/src/Symfony/Component/Intl/Resources/data/scripts/is.json index 5c9454756311c..230fe07b73144 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/is.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/is.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arabískt", "Armn": "armenskt", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/it.json b/src/Symfony/Component/Intl/Resources/data/scripts/it.json index 5c970930e949f..98e954ce5c803 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/it.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/it.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.40", + "Version": "2.1.41.97", "Names": { "Afak": "afaka", "Arab": "arabo", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/iw.json b/src/Symfony/Component/Intl/Resources/data/scripts/iw.json index 2212d2185750a..f4bb3eb0bf5b4 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/iw.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/iw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "ערבי", "Armn": "ארמני", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ja.json b/src/Symfony/Component/Intl/Resources/data/scripts/ja.json index 41a3733e5a2d6..bc1e2bdfe98c0 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ja.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ja.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "アファカ文字", "Aghb": "カフカス・アルバニア文字", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ka.json b/src/Symfony/Component/Intl/Resources/data/scripts/ka.json index d809825d6daac..0b1027bc961c1 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ka.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ka.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "აფაკა", "Arab": "არაბული", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/kk.json b/src/Symfony/Component/Intl/Resources/data/scripts/kk.json index 72f4d79401a87..1733e1955d573 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/kk.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/kk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "араб жазуы", "Armn": "армян жазуы", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/km.json b/src/Symfony/Component/Intl/Resources/data/scripts/km.json index e4de4708ab4c0..9643b8da75654 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/km.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/km.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "អារ៉ាប់", "Armn": "អាមេនី", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/kn.json b/src/Symfony/Component/Intl/Resources/data/scripts/kn.json index bc78a971d10ea..d628d3cd4f3f0 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/kn.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/kn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "ಅರೇಬಿಕ್", "Armi": "ಇಂಪೀರಿಯಲ್ ಅರೆಮಾಯಿಕ್", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ko.json b/src/Symfony/Component/Intl/Resources/data/scripts/ko.json index 8bf9bd250ee46..c0b2a6205be12 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ko.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ko.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "아파카 문자", "Aghb": "코카시안 알바니아 문자", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ks.json b/src/Symfony/Component/Intl/Resources/data/scripts/ks.json index d3f02258ae97e..a31bc49c62b91 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ks.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ks.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "اَربی", "Armn": "اَرمانیَن", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ky.json b/src/Symfony/Component/Intl/Resources/data/scripts/ky.json index 68374dfba2514..ed00ab3ab5660 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ky.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ky.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Араб", "Armn": "Армян", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/lb.json b/src/Symfony/Component/Intl/Resources/data/scripts/lb.json index 6d0f4d64dd50f..ebdadefca4123 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/lb.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/lb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Arabesch", "Armi": "Armi", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/lo.json b/src/Symfony/Component/Intl/Resources/data/scripts/lo.json index b66769a4aac2e..1549922d770e8 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/lo.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/lo.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "ອັບຟາກາ", "Arab": "ອາຣາບິກ", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/lt.json b/src/Symfony/Component/Intl/Resources/data/scripts/lt.json index 112f36454736e..f4aadcbb8db5c 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/lt.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/lt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "Afaka", "Aghb": "Kaukazo Albanijos", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/lv.json b/src/Symfony/Component/Intl/Resources/data/scripts/lv.json index e2e29b670e3d1..f1bb8124e7046 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/lv.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/lv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arābu", "Armi": "aramiešu", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/meta.json b/src/Symfony/Component/Intl/Resources/data/scripts/meta.json index 5bbb30ab41dfd..4277f1d757a48 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/meta.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/meta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.27", + "Version": "2.1.41.58", "Scripts": [ "Adlm", "Afak", @@ -32,6 +32,7 @@ "Cyrl", "Cyrs", "Deva", + "Dogr", "Dsrt", "Dupl", "Egyd", @@ -42,6 +43,7 @@ "Geok", "Geor", "Glag", + "Gong", "Gonm", "Goth", "Gran", @@ -90,10 +92,12 @@ "Lyci", "Lydi", "Mahj", + "Maka", "Mand", "Mani", "Marc", "Maya", + "Medf", "Mend", "Merc", "Mero", @@ -176,6 +180,7 @@ "Qabw", "Qabx", "Rjng", + "Rohg", "Roro", "Runr", "Samr", @@ -188,6 +193,8 @@ "Sidd", "Sind", "Sinh", + "Sogd", + "Sogo", "Sora", "Soyo", "Sund", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/mk.json b/src/Symfony/Component/Intl/Resources/data/scripts/mk.json index ba20168c933d6..5c37b83461f2f 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/mk.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/mk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "афака", "Aghb": "кавкаскоалбански", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ml.json b/src/Symfony/Component/Intl/Resources/data/scripts/ml.json index 62f7b84589bc1..874451321ebc1 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ml.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ml.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "അറബിക്", "Armi": "അർമി", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/mn.json b/src/Symfony/Component/Intl/Resources/data/scripts/mn.json index 8bd5d2457f7e7..3a36cb5339b44 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/mn.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/mn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "араб", "Armn": "армени", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/mr.json b/src/Symfony/Component/Intl/Resources/data/scripts/mr.json index 93b36d661d9aa..135c8c0b0b049 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/mr.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/mr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "अरबी", "Armi": "इम्पिरियल आर्मेनिक", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ms.json b/src/Symfony/Component/Intl/Resources/data/scripts/ms.json index 891d11f469c21..712583e37d0ca 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ms.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ms.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "Arab", "Armn": "Armenia", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/mt.json b/src/Symfony/Component/Intl/Resources/data/scripts/mt.json index e2d54fd0d6e57..3bfbef99aa61c 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/mt.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/mt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Għarbi", "Cyrl": "Ċirilliku", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/my.json b/src/Symfony/Component/Intl/Resources/data/scripts/my.json index b22d405907562..ad99adae3c5e6 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/my.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/my.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "အာရေဗျ", "Armn": "အာမေးနီးယား", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/nb.json b/src/Symfony/Component/Intl/Resources/data/scripts/nb.json index a7a60c33f9eb2..454abf6369ca9 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/nb.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/nb.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "afaka", "Aghb": "kaukasus-albansk", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ne.json b/src/Symfony/Component/Intl/Resources/data/scripts/ne.json index 00f5e56a4f88a..b0ca07ac07281 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ne.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ne.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "अरबी", "Armi": "आर्मी", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/nl.json b/src/Symfony/Component/Intl/Resources/data/scripts/nl.json index 4d46cb07ccd2c..36a5f4195ec60 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/nl.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/nl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Adlm": "Adlam", "Afak": "Defaka", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/nn.json b/src/Symfony/Component/Intl/Resources/data/scripts/nn.json index 38211d5070009..4e981b02e1e54 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/nn.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/nn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arabisk", "Armi": "armisk", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/no.json b/src/Symfony/Component/Intl/Resources/data/scripts/no.json index a7a60c33f9eb2..454abf6369ca9 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/no.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/no.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "afaka", "Aghb": "kaukasus-albansk", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/or.json b/src/Symfony/Component/Intl/Resources/data/scripts/or.json index aa1310fc515df..79172c5caf822 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/or.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/or.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "ଆରବିକ୍", "Armi": "ଇମ୍ପେରିଆଲ୍ ଆରମିକ୍", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/pa.json b/src/Symfony/Component/Intl/Resources/data/scripts/pa.json index 1f09e491bce80..824d3ee0c0966 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/pa.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/pa.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "ਅਰਬੀ", "Armn": "ਅਰਮੀਨੀਆਈ", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/pl.json b/src/Symfony/Component/Intl/Resources/data/scripts/pl.json index e797e10c46b64..22a8f7da2c149 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/pl.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/pl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.15", + "Version": "2.1.41.97", "Names": { "Arab": "arabskie", "Armi": "armi", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ps.json b/src/Symfony/Component/Intl/Resources/data/scripts/ps.json index 9f5422c641039..1d74d2c0a9e80 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ps.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ps.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "عربي", "Armn": "ارمانیایي", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/pt.json b/src/Symfony/Component/Intl/Resources/data/scripts/pt.json index 293a97d400014..7c42cbfdef085 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/pt.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/pt.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "árabe", "Armi": "armi", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/pt_PT.json b/src/Symfony/Component/Intl/Resources/data/scripts/pt_PT.json index 3977c81c8514f..dc0aa374d277b 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/pt_PT.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/pt_PT.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Armn": "arménio", "Egyd": "egípcio demótico", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/rm.json b/src/Symfony/Component/Intl/Resources/data/scripts/rm.json index eab31114c06ba..9cd85cd473a20 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/rm.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/rm.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arab", "Armi": "arameic imperial", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ro.json b/src/Symfony/Component/Intl/Resources/data/scripts/ro.json index 2f5125b8490f0..105230762be1d 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ro.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ro.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Arab": "arabă", "Armn": "armeană", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ru.json b/src/Symfony/Component/Intl/Resources/data/scripts/ru.json index 5ce2b43614dfc..0a7fca3b09479 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ru.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ru.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "афака", "Arab": "арабица", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sh.json b/src/Symfony/Component/Intl/Resources/data/scripts/sh.json index 7b87fb0405050..b2a6fbf8cd130 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sh.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "Arab": "arapsko pismo", "Armi": "imperijsko aramejsko pismo", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/si.json b/src/Symfony/Component/Intl/Resources/data/scripts/si.json index 91d3a1b1cc309..6680d11d3d5f6 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/si.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/si.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "අරාබි", "Armn": "ආර්මේනියානු", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sk.json b/src/Symfony/Component/Intl/Resources/data/scripts/sk.json index ac6143c5b7ae2..515a456c942a5 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sk.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arabské", "Armn": "arménske", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sl.json b/src/Symfony/Component/Intl/Resources/data/scripts/sl.json index 1840e397ecf77..42b1afd3b49a9 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sl.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arabski", "Armi": "imperialno-aramejski", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sq.json b/src/Symfony/Component/Intl/Resources/data/scripts/sq.json index 0fa699b70e454..a0c3b88946a26 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sq.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sq.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arabik", "Armn": "armen", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sr.json b/src/Symfony/Component/Intl/Resources/data/scripts/sr.json index 072b2fa1079eb..105850f441be5 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sr.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "арапско писмо", "Armi": "империјско арамејско писмо", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sr_Latn.json b/src/Symfony/Component/Intl/Resources/data/scripts/sr_Latn.json index 7b87fb0405050..b2a6fbf8cd130 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sr_Latn.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sr_Latn.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.37", + "Version": "2.1.41.97", "Names": { "Arab": "arapsko pismo", "Armi": "imperijsko aramejsko pismo", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sv.json b/src/Symfony/Component/Intl/Resources/data/scripts/sv.json index 80a0c8b13bbfb..69c849ec22e9f 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sv.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sv.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Adlm": "adlamiska", "Afak": "afakiska", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/sw.json b/src/Symfony/Component/Intl/Resources/data/scripts/sw.json index 557aba70f24be..1b6fd1f11abd1 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/sw.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/sw.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Kiarabu", "Armn": "Kiarmenia", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ta.json b/src/Symfony/Component/Intl/Resources/data/scripts/ta.json index 1707d6ccaa719..ede80b87bc071 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ta.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ta.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "அரபிக்", "Armi": "இம்பேரியல் அரமெய்க்", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/te.json b/src/Symfony/Component/Intl/Resources/data/scripts/te.json index 1da8028bc8d01..a85acff075970 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/te.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/te.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "అరబిక్", "Armi": "ఇంపీరియల్ అరామాక్", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/th.json b/src/Symfony/Component/Intl/Resources/data/scripts/th.json index 7197f26d2244d..bd9c90e489bc7 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/th.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/th.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "อะฟาคา", "Aghb": "แอลเบเนีย คอเคเซีย", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/tl.json b/src/Symfony/Component/Intl/Resources/data/scripts/tl.json index 618cc33b9601a..03fd8a38ee155 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/tl.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/tl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "Arabic", "Armn": "Armenian", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/tr.json b/src/Symfony/Component/Intl/Resources/data/scripts/tr.json index ab1df5e86c5fd..0c45b1d918dce 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/tr.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/tr.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "Afaka", "Aghb": "Kafkas Albanyası", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ug.json b/src/Symfony/Component/Intl/Resources/data/scripts/ug.json index 4a061d621e69b..90c49e07ba2a3 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ug.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ug.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Afak": "ئافاكا", "Arab": "ئەرەب", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/uk.json b/src/Symfony/Component/Intl/Resources/data/scripts/uk.json index e04a68f5d309f..7514cdeb12050 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/uk.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/uk.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Adlm": "адлам", "Afak": "афака", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/ur.json b/src/Symfony/Component/Intl/Resources/data/scripts/ur.json index c529c1c7ecada..d53d434d514b4 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/ur.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/ur.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "عربی", "Armn": "آرمینیائی", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/uz.json b/src/Symfony/Component/Intl/Resources/data/scripts/uz.json index 08f95d04e5749..e9a691078f96f 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/uz.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/uz.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "arab", "Armn": "arman", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/uz_Cyrl.json b/src/Symfony/Component/Intl/Resources/data/scripts/uz_Cyrl.json index c532c52387e68..fab5f4ecd19a6 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/uz_Cyrl.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/uz_Cyrl.json @@ -1,5 +1,5 @@ { - "Version": "2.1.38.69", + "Version": "2.1.41.97", "Names": { "Arab": "Араб", "Armn": "Арман", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/vi.json b/src/Symfony/Component/Intl/Resources/data/scripts/vi.json index 344b1e4331ea3..846c3f222e9a7 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/vi.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/vi.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Afak": "Chữ Afaka", "Arab": "Chữ Ả Rập", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/zh.json b/src/Symfony/Component/Intl/Resources/data/scripts/zh.json index 56c180d82b38d..3b281a1ae629c 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/zh.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/zh.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Adlm": "阿德拉姆文", "Afak": "阿法卡文", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/zh_Hant.json b/src/Symfony/Component/Intl/Resources/data/scripts/zh_Hant.json index ae409e05bfb9d..073e3c4fb139a 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/zh_Hant.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/zh_Hant.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.20", + "Version": "2.1.41.97", "Names": { "Adlm": "富拉文", "Afak": "阿法卡文字", diff --git a/src/Symfony/Component/Intl/Resources/data/scripts/zu.json b/src/Symfony/Component/Intl/Resources/data/scripts/zu.json index 30ece0ab8ec05..44491ae6e12b0 100644 --- a/src/Symfony/Component/Intl/Resources/data/scripts/zu.json +++ b/src/Symfony/Component/Intl/Resources/data/scripts/zu.json @@ -1,5 +1,5 @@ { - "Version": "2.1.39.11", + "Version": "2.1.41.97", "Names": { "Arab": "isi-Arabic", "Armn": "isi-Armenian", diff --git a/src/Symfony/Component/Intl/Resources/data/svn-info.txt b/src/Symfony/Component/Intl/Resources/data/svn-info.txt index 0064d80facaa8..556c6cf358825 100644 --- a/src/Symfony/Component/Intl/Resources/data/svn-info.txt +++ b/src/Symfony/Component/Intl/Resources/data/svn-info.txt @@ -1,7 +1,7 @@ SVN information =============== -URL: http://source.icu-project.org/repos/icu/tags/release-61-1/icu4c/source -Revision: 41146 -Author: heninger -Date: 2018-03-23T22:14:04.032868Z +URL: http://source.icu-project.org/repos/icu/tags/release-62-1/icu4c/source +Revision: 41542 +Author: yoshito +Date: 2018-06-20T05:34:56.496986Z diff --git a/src/Symfony/Component/Intl/Resources/data/version.txt b/src/Symfony/Component/Intl/Resources/data/version.txt index 721381cdd70ea..7425208f378b7 100644 --- a/src/Symfony/Component/Intl/Resources/data/version.txt +++ b/src/Symfony/Component/Intl/Resources/data/version.txt @@ -1 +1 @@ -61.1 +62.1 diff --git a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php index b4bde80e68208..cbd3b037d2ba3 100644 --- a/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php +++ b/src/Symfony/Component/Intl/Tests/Data/Provider/AbstractScriptDataProviderTest.php @@ -55,6 +55,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Cyrl', 'Cyrs', 'Deva', + 'Dogr', 'Dsrt', 'Dupl', 'Egyd', @@ -65,6 +66,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Geok', 'Geor', 'Glag', + 'Gong', 'Gonm', 'Goth', 'Gran', @@ -113,10 +115,12 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Lyci', 'Lydi', 'Mahj', + 'Maka', 'Mand', 'Mani', 'Marc', 'Maya', + 'Medf', 'Mend', 'Merc', 'Mero', @@ -199,6 +203,7 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Qabw', 'Qabx', 'Rjng', + 'Rohg', 'Roro', 'Runr', 'Samr', @@ -211,6 +216,8 @@ abstract class AbstractScriptDataProviderTest extends AbstractDataProviderTest 'Sidd', 'Sind', 'Sinh', + 'Sogd', + 'Sogo', 'Sora', 'Soyo', 'Sund', diff --git a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php index 1a6ea28ac6505..5308d484990b2 100644 --- a/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php +++ b/src/Symfony/Component/Ldap/Adapter/ExtLdap/Connection.php @@ -145,7 +145,7 @@ private function connect() private function disconnect() { if ($this->connection && is_resource($this->connection)) { - ldap_close($this->connection); + ldap_unbind($this->connection); } $this->connection = null; diff --git a/src/Symfony/Component/Lock/Store/FlockStore.php b/src/Symfony/Component/Lock/Store/FlockStore.php index d0317358e89a5..5c5baee29a91d 100644 --- a/src/Symfony/Component/Lock/Store/FlockStore.php +++ b/src/Symfony/Component/Lock/Store/FlockStore.php @@ -79,12 +79,12 @@ private function lock(Key $key, $blocking) // Silence error reporting set_error_handler(function ($type, $msg) use (&$error) { $error = $msg; }); - if (!$handle = fopen($fileName, 'r')) { + if (!$handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r')) { if ($handle = fopen($fileName, 'x')) { chmod($fileName, 0444); - } elseif (!$handle = fopen($fileName, 'r')) { + } elseif (!$handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r')) { usleep(100); // Give some time for chmod() to complete - $handle = fopen($fileName, 'r'); + $handle = fopen($fileName, 'r+') ?: fopen($fileName, 'r'); } } restore_error_handler(); diff --git a/src/Symfony/Component/Lock/Store/SemaphoreStore.php b/src/Symfony/Component/Lock/Store/SemaphoreStore.php index a6cc9ea8b9f1d..4e149e8deb81c 100644 --- a/src/Symfony/Component/Lock/Store/SemaphoreStore.php +++ b/src/Symfony/Component/Lock/Store/SemaphoreStore.php @@ -75,16 +75,20 @@ private function lock(Key $key, $blocking) return; } - $resource = sem_get(crc32($key)); + $keyId = crc32($key); + $resource = sem_get($keyId); - if (\PHP_VERSION_ID < 50601) { - if (!$blocking) { - throw new NotSupportedException(sprintf('The store "%s" does not supports non blocking locks.', get_class($this))); - } - - $acquired = sem_acquire($resource); + if (\PHP_VERSION_ID >= 50601) { + $acquired = @sem_acquire($resource, !$blocking); + } elseif (!$blocking) { + throw new NotSupportedException(sprintf('The store "%s" does not supports non blocking locks.', get_class($this))); } else { - $acquired = sem_acquire($resource, !$blocking); + $acquired = @sem_acquire($resource); + } + + while ($blocking && !$acquired) { + $resource = sem_get($keyId); + $acquired = @sem_acquire($resource); } if (!$acquired) { @@ -106,7 +110,7 @@ public function delete(Key $key) $resource = $key->getState(__CLASS__); - sem_release($resource); + sem_remove($resource); $key->removeState(__CLASS__); } diff --git a/src/Symfony/Component/Lock/Tests/Store/SemaphoreStoreTest.php b/src/Symfony/Component/Lock/Tests/Store/SemaphoreStoreTest.php index bb37ec1fe1a1b..23b90360bea77 100644 --- a/src/Symfony/Component/Lock/Tests/Store/SemaphoreStoreTest.php +++ b/src/Symfony/Component/Lock/Tests/Store/SemaphoreStoreTest.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Lock\Tests\Store; +use Symfony\Component\Lock\Key; use Symfony\Component\Lock\Store\SemaphoreStore; /** @@ -33,4 +34,31 @@ protected function getStore() return new SemaphoreStore(); } + + public function testResourceRemoval() + { + $initialCount = $this->getOpenedSemaphores(); + $store = new SemaphoreStore(); + $key = new Key(uniqid(__METHOD__, true)); + $store->waitAndSave($key); + + $this->assertGreaterThan($initialCount, $this->getOpenedSemaphores(), 'Semaphores should have been created'); + + $store->delete($key); + $this->assertEquals($initialCount, $this->getOpenedSemaphores(), 'All semaphores should be removed'); + } + + private function getOpenedSemaphores() + { + $lines = explode(PHP_EOL, trim(`ipcs -su`)); + if ('------ Semaphore Status --------' !== $lines[0]) { + throw new \Exception('Failed to extract list of opend semaphores. Expect a Semaphore status, got '.implode(PHP_EOL, $lines)); + } + list($key, $value) = explode(' = ', $lines[1]); + if ('used arrays' !== $key) { + throw new \Exception('Failed to extract list of opend semaphores. Expect a used arrays key, got '.implode(PHP_EOL, $lines)); + } + + return (int) $value; + } } diff --git a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php index 440af8b5787e6..12dc77b3c6b1c 100644 --- a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php +++ b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php @@ -29,10 +29,6 @@ protected function setUp() $this->resolver = new OptionsResolver(); } - //////////////////////////////////////////////////////////////////////////// - // resolve() - //////////////////////////////////////////////////////////////////////////// - /** * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException * @expectedExceptionMessage The option "foo" does not exist. Defined options are: "a", "z". @@ -69,10 +65,6 @@ public function testResolveFailsFromLazyOption() $this->resolver->resolve(); } - //////////////////////////////////////////////////////////////////////////// - // setDefault()/hasDefault() - //////////////////////////////////////////////////////////////////////////// - public function testSetDefaultReturnsThis() { $this->assertSame($this->resolver, $this->resolver->setDefault('foo', 'bar')); @@ -115,10 +107,6 @@ public function testHasDefaultWithNullValue() $this->assertTrue($this->resolver->hasDefault('foo')); } - //////////////////////////////////////////////////////////////////////////// - // lazy setDefault() - //////////////////////////////////////////////////////////////////////////// - public function testSetLazyReturnsThis() { $this->assertSame($this->resolver, $this->resolver->setDefault('foo', function (Options $options) {})); @@ -232,10 +220,6 @@ public function testInvokeEachLazyOptionOnlyOnce() $this->assertSame(2, $calls); } - //////////////////////////////////////////////////////////////////////////// - // setRequired()/isRequired()/getRequiredOptions() - //////////////////////////////////////////////////////////////////////////// - public function testSetRequiredReturnsThis() { $this->assertSame($this->resolver, $this->resolver->setRequired('foo')); @@ -330,10 +314,6 @@ public function testGetRequiredOptions() $this->assertSame(array('foo', 'bar'), $this->resolver->getRequiredOptions()); } - //////////////////////////////////////////////////////////////////////////// - // isMissing()/getMissingOptions() - //////////////////////////////////////////////////////////////////////////// - public function testIsMissingIfNotSet() { $this->assertFalse($this->resolver->isMissing('foo')); @@ -373,10 +353,6 @@ public function testGetMissingOptions() $this->assertSame(array('bar'), $this->resolver->getMissingOptions()); } - //////////////////////////////////////////////////////////////////////////// - // setDefined()/isDefined()/getDefinedOptions() - //////////////////////////////////////////////////////////////////////////// - /** * @expectedException \Symfony\Component\OptionsResolver\Exception\AccessException */ @@ -474,10 +450,6 @@ public function testClearedOptionsAreNotDefined() $this->assertFalse($this->resolver->isDefined('foo')); } - //////////////////////////////////////////////////////////////////////////// - // setAllowedTypes() - //////////////////////////////////////////////////////////////////////////// - /** * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException */ @@ -662,10 +634,6 @@ public function testResolveFailsIfNotInstanceOfClass() $this->resolver->resolve(); } - //////////////////////////////////////////////////////////////////////////// - // addAllowedTypes() - //////////////////////////////////////////////////////////////////////////// - /** * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException */ @@ -748,10 +716,6 @@ public function testAddAllowedTypesDoesNotOverwrite2() $this->assertNotEmpty($this->resolver->resolve()); } - //////////////////////////////////////////////////////////////////////////// - // setAllowedValues() - //////////////////////////////////////////////////////////////////////////// - /** * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException */ @@ -903,10 +867,6 @@ function () { return false; }, $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); } - //////////////////////////////////////////////////////////////////////////// - // addAllowedValues() - //////////////////////////////////////////////////////////////////////////// - /** * @expectedException \Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException */ @@ -1023,10 +983,6 @@ public function testResolveSucceedsIfAnyAddedClosureReturnsTrue2() $this->assertEquals(array('foo' => 'bar'), $this->resolver->resolve()); } - //////////////////////////////////////////////////////////////////////////// - // setNormalizer() - //////////////////////////////////////////////////////////////////////////// - public function testSetNormalizerReturnsThis() { $this->resolver->setDefault('foo', 'bar'); @@ -1278,10 +1234,6 @@ public function testNormalizerNotCalledForUnsetOptions() $this->assertEmpty($this->resolver->resolve()); } - //////////////////////////////////////////////////////////////////////////// - // setDefaults() - //////////////////////////////////////////////////////////////////////////// - public function testSetDefaultsReturnsThis() { $this->assertSame($this->resolver, $this->resolver->setDefaults(array('foo', 'bar'))); @@ -1316,10 +1268,6 @@ public function testFailIfSetDefaultsFromLazyOption() $this->resolver->resolve(); } - //////////////////////////////////////////////////////////////////////////// - // remove() - //////////////////////////////////////////////////////////////////////////// - public function testRemoveReturnsThis() { $this->resolver->setDefault('foo', 'bar'); @@ -1408,10 +1356,6 @@ public function testRemoveUnknownOptionIgnored() $this->assertNotNull($this->resolver->remove('foo')); } - //////////////////////////////////////////////////////////////////////////// - // clear() - //////////////////////////////////////////////////////////////////////////// - public function testClearReturnsThis() { $this->assertSame($this->resolver, $this->resolver->clear()); @@ -1498,10 +1442,6 @@ public function testClearOptionAndNormalizer() $this->assertEmpty($this->resolver->resolve()); } - //////////////////////////////////////////////////////////////////////////// - // ArrayAccess - //////////////////////////////////////////////////////////////////////////// - public function testArrayAccess() { $this->resolver->setDefault('default1', 0); @@ -1616,10 +1556,6 @@ public function testFailIfCyclicDependency() $this->resolver->resolve(); } - //////////////////////////////////////////////////////////////////////////// - // Countable - //////////////////////////////////////////////////////////////////////////// - public function testCount() { $this->resolver->setDefault('default', 0); diff --git a/src/Symfony/Component/Process/ExecutableFinder.php b/src/Symfony/Component/Process/ExecutableFinder.php index 1ec6526d45efd..defa66de6b359 100644 --- a/src/Symfony/Component/Process/ExecutableFinder.php +++ b/src/Symfony/Component/Process/ExecutableFinder.php @@ -73,7 +73,7 @@ public function find($name, $default = null, array $extraDirs = array()) $suffixes = array(''); if ('\\' === DIRECTORY_SEPARATOR) { $pathExt = getenv('PATHEXT'); - $suffixes = array_merge($suffixes, $pathExt ? explode(PATH_SEPARATOR, $pathExt) : $this->suffixes); + $suffixes = array_merge($pathExt ? explode(PATH_SEPARATOR, $pathExt) : $this->suffixes, $suffixes); } foreach ($suffixes as $suffix) { foreach ($dirs as $dir) { diff --git a/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php b/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php index bc692f6a75df6..3cec486c6a0bd 100644 --- a/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php +++ b/src/Symfony/Component/Process/Tests/ExecutableFinderTest.php @@ -117,6 +117,36 @@ public function testFindProcessInOpenBasedir() $this->assertSamePath(PHP_BINARY, $result); } + /** + * @requires PHP 5.4 + */ + public function testFindBatchExecutableOnWindows() + { + if (ini_get('open_basedir')) { + $this->markTestSkipped('Cannot test when open_basedir is set'); + } + if ('\\' !== DIRECTORY_SEPARATOR) { + $this->markTestSkipped('Can be only tested on windows'); + } + + $target = tempnam(sys_get_temp_dir(), 'example-windows-executable'); + + touch($target); + touch($target.'.BAT'); + + $this->assertFalse(is_executable($target)); + + $this->setPath(sys_get_temp_dir()); + + $finder = new ExecutableFinder(); + $result = $finder->find(basename($target), false); + + unlink($target); + unlink($target.'.BAT'); + + $this->assertSamePath($target.'.BAT', $result); + } + private function assertSamePath($expected, $tested) { if ('\\' === DIRECTORY_SEPARATOR) { diff --git a/src/Symfony/Component/Routing/composer.json b/src/Symfony/Component/Routing/composer.json index 4d820cc213882..266d52b7d02a5 100644 --- a/src/Symfony/Component/Routing/composer.json +++ b/src/Symfony/Component/Routing/composer.json @@ -25,7 +25,6 @@ "symfony/expression-language": "~2.8|~3.0|~4.0", "symfony/dependency-injection": "~3.3|~4.0", "doctrine/annotations": "~1.0", - "doctrine/common": "~2.2", "psr/log": "~1.0" }, "conflict": { diff --git a/src/Symfony/Component/Security/CHANGELOG.md b/src/Symfony/Component/Security/CHANGELOG.md index bd1b7b59eb793..c3a6857a80c84 100644 --- a/src/Symfony/Component/Security/CHANGELOG.md +++ b/src/Symfony/Component/Security/CHANGELOG.md @@ -6,7 +6,7 @@ CHANGELOG * Added `getUser`, `getToken` and `isGranted` methods to `Security`. * added a `setToken()` method to the `SwitchUserEvent` class to allow to replace the created token while switching users - when custom token generation is required by application. + when custom token generation is required by application. * Using voters that do not implement the `VoterInterface`is now deprecated in the `AccessDecisionManager` and this functionality will be removed in 4.0. * Using the `ContextListener` without setting the `logoutOnUserChange` @@ -16,6 +16,8 @@ CHANGELOG * deprecated HTTP digest authentication * Added a new password encoder for the Argon2i hashing algorithm * deprecated `GuardAuthenticatorInterface` in favor of `AuthenticatorInterface` + * deprecated to return `null` from `getCredentials()` in classes that extend + `AbstractGuardAuthenticator`. Return `false` from `supports()` instead. 3.3.0 ----- diff --git a/src/Symfony/Component/Security/Guard/Firewall/GuardAuthenticationListener.php b/src/Symfony/Component/Security/Guard/Firewall/GuardAuthenticationListener.php index ec8375faff34f..889150c73283e 100644 --- a/src/Symfony/Component/Security/Guard/Firewall/GuardAuthenticationListener.php +++ b/src/Symfony/Component/Security/Guard/Firewall/GuardAuthenticationListener.php @@ -147,7 +147,7 @@ private function executeGuardAuthenticator($uniqueGuardKey, GuardAuthenticatorIn } // sets the token on the token storage, etc - $this->guardHandler->authenticateWithToken($token, $request); + $this->guardHandler->authenticateWithToken($token, $request, $this->providerKey); } catch (AuthenticationException $e) { // oh no! Authentication failed! diff --git a/src/Symfony/Component/Security/Guard/GuardAuthenticatorHandler.php b/src/Symfony/Component/Security/Guard/GuardAuthenticatorHandler.php index 1af407d236039..24538e5d88dc8 100644 --- a/src/Symfony/Component/Security/Guard/GuardAuthenticatorHandler.php +++ b/src/Symfony/Component/Security/Guard/GuardAuthenticatorHandler.php @@ -20,6 +20,7 @@ use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; use Symfony\Component\Security\Http\SecurityEvents; +use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface; /** * A utility class that does much of the *work* during the guard authentication process. @@ -34,21 +35,30 @@ class GuardAuthenticatorHandler { private $tokenStorage; - private $dispatcher; + private $sessionStrategy; + private $statelessProviderKeys; - public function __construct(TokenStorageInterface $tokenStorage, EventDispatcherInterface $eventDispatcher = null) + /** + * @param array $statelessProviderKeys An array of provider/firewall keys that are "stateless" and so do not need the session migrated on success + */ + public function __construct(TokenStorageInterface $tokenStorage, EventDispatcherInterface $eventDispatcher = null, array $statelessProviderKeys = array()) { $this->tokenStorage = $tokenStorage; $this->dispatcher = $eventDispatcher; + $this->statelessProviderKeys = $statelessProviderKeys; } /** * Authenticates the given token in the system. + * + * @param string $providerKey The name of the provider/firewall being used for authentication */ - public function authenticateWithToken(TokenInterface $token, Request $request) + public function authenticateWithToken(TokenInterface $token, Request $request/*, string $providerKey */) { - $this->migrateSession($request); + $providerKey = \func_num_args() > 2 ? func_get_arg(2) : null; + + $this->migrateSession($request, $token, $providerKey); $this->tokenStorage->setToken($token); if (null !== $this->dispatcher) { @@ -99,7 +109,7 @@ public function authenticateUserAndHandleSuccess(UserInterface $user, Request $r // create an authenticated token for the User $token = $authenticator->createAuthenticatedToken($user, $providerKey); // authenticate this in the system - $this->authenticateWithToken($token, $request); + $this->authenticateWithToken($token, $request, $providerKey); // return the success metric return $this->handleAuthenticationSuccess($token, $request, $authenticator, $providerKey); @@ -131,11 +141,22 @@ public function handleAuthenticationFailure(AuthenticationException $authenticat )); } - private function migrateSession(Request $request) + /** + * Call this method if your authentication token is stored to a session. + * + * @final + */ + public function setSessionAuthenticationStrategy(SessionAuthenticationStrategyInterface $sessionStrategy) + { + $this->sessionStrategy = $sessionStrategy; + } + + private function migrateSession(Request $request, TokenInterface $token, $providerKey) { - if (!$request->hasSession() || !$request->hasPreviousSession()) { + if (!$this->sessionStrategy || !$request->hasSession() || !$request->hasPreviousSession() || \in_array($providerKey, $this->statelessProviderKeys, true)) { return; } - $request->getSession()->migrate(true); + + $this->sessionStrategy->onAuthentication($request, $token); } } diff --git a/src/Symfony/Component/Security/Guard/Tests/GuardAuthenticatorHandlerTest.php b/src/Symfony/Component/Security/Guard/Tests/GuardAuthenticatorHandlerTest.php index 5b03d4e13809b..06ed4bed3af49 100644 --- a/src/Symfony/Component/Security/Guard/Tests/GuardAuthenticatorHandlerTest.php +++ b/src/Symfony/Component/Security/Guard/Tests/GuardAuthenticatorHandlerTest.php @@ -26,6 +26,7 @@ class GuardAuthenticatorHandlerTest extends TestCase private $dispatcher; private $token; private $request; + private $sessionStrategy; private $guardAuthenticator; public function testAuthenticateWithToken() @@ -118,12 +119,50 @@ public function getTokenClearingTests() return $tests; } + public function testNoFailureIfSessionStrategyNotPassed() + { + $this->configurePreviousSession(); + + $this->tokenStorage->expects($this->once()) + ->method('setToken') + ->with($this->token); + + $handler = new GuardAuthenticatorHandler($this->tokenStorage, $this->dispatcher); + $handler->authenticateWithToken($this->token, $this->request); + } + + public function testSessionStrategyIsCalled() + { + $this->configurePreviousSession(); + + $this->sessionStrategy->expects($this->once()) + ->method('onAuthentication') + ->with($this->request, $this->token); + + $handler = new GuardAuthenticatorHandler($this->tokenStorage, $this->dispatcher); + $handler->setSessionAuthenticationStrategy($this->sessionStrategy); + $handler->authenticateWithToken($this->token, $this->request); + } + + public function testSessionStrategyIsNotCalledWhenStateless() + { + $this->configurePreviousSession(); + + $this->sessionStrategy->expects($this->never()) + ->method('onAuthentication'); + + $handler = new GuardAuthenticatorHandler($this->tokenStorage, $this->dispatcher, array('some_provider_key')); + $handler->setSessionAuthenticationStrategy($this->sessionStrategy); + $handler->authenticateWithToken($this->token, $this->request, 'some_provider_key'); + } + protected function setUp() { $this->tokenStorage = $this->getMockBuilder('Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface')->getMock(); $this->dispatcher = $this->getMockBuilder('Symfony\Component\EventDispatcher\EventDispatcherInterface')->getMock(); $this->token = $this->getMockBuilder('Symfony\Component\Security\Core\Authentication\Token\TokenInterface')->getMock(); $this->request = new Request(array(), array(), array(), array(), array(), array()); + $this->sessionStrategy = $this->getMockBuilder('Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface')->getMock(); $this->guardAuthenticator = $this->getMockBuilder(AuthenticatorInterface::class)->getMock(); } @@ -135,4 +174,14 @@ protected function tearDown() $this->request = null; $this->guardAuthenticator = null; } + + private function configurePreviousSession() + { + $session = $this->getMockBuilder('Symfony\Component\HttpFoundation\Session\SessionInterface')->getMock(); + $session->expects($this->any()) + ->method('getName') + ->willReturn('test_session_name'); + $this->request->setSession($session); + $this->request->cookies->set('test_session_name', 'session_cookie_val'); + } } diff --git a/src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php b/src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php index 6286b6cf87cd6..062f4521cfbac 100644 --- a/src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/AbstractPreAuthenticatedListener.php @@ -14,6 +14,7 @@ use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface; use Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; +use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; use Symfony\Component\Security\Http\SecurityEvents; @@ -22,6 +23,7 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\Security\Core\Exception\BadCredentialsException; +use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface; /** * AbstractPreAuthenticatedListener is the base class for all listener that @@ -37,6 +39,7 @@ abstract class AbstractPreAuthenticatedListener implements ListenerInterface private $authenticationManager; private $providerKey; private $dispatcher; + private $sessionStrategy; public function __construct(TokenStorageInterface $tokenStorage, AuthenticationManagerInterface $authenticationManager, $providerKey, LoggerInterface $logger = null, EventDispatcherInterface $dispatcher = null) { @@ -83,7 +86,7 @@ final public function handle(GetResponseEvent $event) $this->logger->info('Pre-authentication successful.', array('token' => (string) $token)); } - $this->migrateSession($request); + $this->migrateSession($request, $token); $this->tokenStorage->setToken($token); @@ -96,6 +99,16 @@ final public function handle(GetResponseEvent $event) } } + /** + * Call this method if your authentication token is stored to a session. + * + * @final + */ + public function setSessionAuthenticationStrategy(SessionAuthenticationStrategyInterface $sessionStrategy) + { + $this->sessionStrategy = $sessionStrategy; + } + /** * Clears a PreAuthenticatedToken for this provider (if present). */ @@ -118,11 +131,12 @@ private function clearToken(AuthenticationException $exception) */ abstract protected function getPreAuthenticatedData(Request $request); - private function migrateSession(Request $request) + private function migrateSession(Request $request, TokenInterface $token) { - if (!$request->hasSession() || !$request->hasPreviousSession()) { + if (!$this->sessionStrategy || !$request->hasSession() || !$request->hasPreviousSession()) { return; } - $request->getSession()->migrate(true); + + $this->sessionStrategy->onAuthentication($request, $token); } } diff --git a/src/Symfony/Component/Security/Http/Firewall/BasicAuthenticationListener.php b/src/Symfony/Component/Security/Http/Firewall/BasicAuthenticationListener.php index 0d32f9a3d2bac..bfc61f3faacf7 100644 --- a/src/Symfony/Component/Security/Http/Firewall/BasicAuthenticationListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/BasicAuthenticationListener.php @@ -14,11 +14,13 @@ use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Core\Authentication\AuthenticationManagerInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; +use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\EntryPoint\AuthenticationEntryPointInterface; use Psr\Log\LoggerInterface; use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken; use Symfony\Component\Security\Core\Exception\AuthenticationException; +use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface; /** * BasicAuthenticationListener implements Basic HTTP authentication. @@ -33,6 +35,7 @@ class BasicAuthenticationListener implements ListenerInterface private $authenticationEntryPoint; private $logger; private $ignoreFailure; + private $sessionStrategy; public function __construct(TokenStorageInterface $tokenStorage, AuthenticationManagerInterface $authenticationManager, $providerKey, AuthenticationEntryPointInterface $authenticationEntryPoint, LoggerInterface $logger = null) { @@ -72,7 +75,7 @@ public function handle(GetResponseEvent $event) try { $token = $this->authenticationManager->authenticate(new UsernamePasswordToken($username, $request->headers->get('PHP_AUTH_PW'), $this->providerKey)); - $this->migrateSession($request); + $this->migrateSession($request, $token); $this->tokenStorage->setToken($token); } catch (AuthenticationException $e) { @@ -93,11 +96,22 @@ public function handle(GetResponseEvent $event) } } - private function migrateSession(Request $request) + /** + * Call this method if your authentication token is stored to a session. + * + * @final + */ + public function setSessionAuthenticationStrategy(SessionAuthenticationStrategyInterface $sessionStrategy) + { + $this->sessionStrategy = $sessionStrategy; + } + + private function migrateSession(Request $request, TokenInterface $token) { - if (!$request->hasSession() || !$request->hasPreviousSession()) { + if (!$this->sessionStrategy || !$request->hasSession() || !$request->hasPreviousSession()) { return; } - $request->getSession()->migrate(true); + + $this->sessionStrategy->onAuthentication($request, $token); } } diff --git a/src/Symfony/Component/Security/Http/Firewall/DigestAuthenticationListener.php b/src/Symfony/Component/Security/Http/Firewall/DigestAuthenticationListener.php index bcdd0d168ece2..d356874a8cc54 100644 --- a/src/Symfony/Component/Security/Http/Firewall/DigestAuthenticationListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/DigestAuthenticationListener.php @@ -11,6 +11,7 @@ namespace Symfony\Component\Security\Http\Firewall; +use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\User\UserProviderInterface; use Symfony\Component\Security\Http\EntryPoint\DigestAuthenticationEntryPoint; use Psr\Log\LoggerInterface; @@ -23,6 +24,7 @@ use Symfony\Component\Security\Core\Exception\NonceExpiredException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Core\Exception\AuthenticationException; +use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface; /** * DigestAuthenticationListener implements Digest HTTP authentication. @@ -38,6 +40,7 @@ class DigestAuthenticationListener implements ListenerInterface private $providerKey; private $authenticationEntryPoint; private $logger; + private $sessionStrategy; public function __construct(TokenStorageInterface $tokenStorage, UserProviderInterface $provider, $providerKey, DigestAuthenticationEntryPoint $authenticationEntryPoint, LoggerInterface $logger = null) { @@ -121,9 +124,20 @@ public function handle(GetResponseEvent $event) $this->logger->info('Digest authentication successful.', array('username' => $digestAuth->getUsername(), 'received' => $digestAuth->getResponse())); } - $this->migrateSession($request); + $token = new UsernamePasswordToken($user, $user->getPassword(), $this->providerKey); + $this->migrateSession($request, $token); - $this->tokenStorage->setToken(new UsernamePasswordToken($user, $user->getPassword(), $this->providerKey)); + $this->tokenStorage->setToken($token); + } + + /** + * Call this method if your authentication token is stored to a session. + * + * @final + */ + public function setSessionAuthenticationStrategy(SessionAuthenticationStrategyInterface $sessionStrategy) + { + $this->sessionStrategy = $sessionStrategy; } private function fail(GetResponseEvent $event, Request $request, AuthenticationException $authException) @@ -140,12 +154,13 @@ private function fail(GetResponseEvent $event, Request $request, AuthenticationE $event->setResponse($this->authenticationEntryPoint->start($request, $authException)); } - private function migrateSession(Request $request) + private function migrateSession(Request $request, TokenInterface $token) { - if (!$request->hasSession() || !$request->hasPreviousSession()) { + if (!$this->sessionStrategy || !$request->hasSession() || !$request->hasPreviousSession()) { return; } - $request->getSession()->migrate(true); + + $this->sessionStrategy->onAuthentication($request, $token); } } diff --git a/src/Symfony/Component/Security/Http/Firewall/RememberMeListener.php b/src/Symfony/Component/Security/Http/Firewall/RememberMeListener.php index 13cb8755dfacd..891bfc12d292f 100644 --- a/src/Symfony/Component/Security/Http/Firewall/RememberMeListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/RememberMeListener.php @@ -68,7 +68,25 @@ public function handle(GetResponseEvent $event) } $request = $event->getRequest(); - if (null === $token = $this->rememberMeServices->autoLogin($request)) { + try { + if (null === $token = $this->rememberMeServices->autoLogin($request)) { + return; + } + } catch (AuthenticationException $e) { + if (null !== $this->logger) { + $this->logger->warning( + 'The token storage was not populated with remember-me token as the' + .' RememberMeServices was not able to create a token from the remember' + .' me information.', array('exception' => $e) + ); + } + + $this->rememberMeServices->loginFail($request); + + if (!$this->catchExceptions) { + throw $e; + } + return; } diff --git a/src/Symfony/Component/Security/Http/Firewall/SimplePreAuthenticationListener.php b/src/Symfony/Component/Security/Http/Firewall/SimplePreAuthenticationListener.php index 7325658c8d902..1821e01133d12 100644 --- a/src/Symfony/Component/Security/Http/Firewall/SimplePreAuthenticationListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/SimplePreAuthenticationListener.php @@ -19,12 +19,14 @@ use Symfony\Component\Security\Http\Authentication\SimplePreAuthenticatorInterface; use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; +use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Exception\AuthenticationException; use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface; use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; use Symfony\Component\Security\Http\SecurityEvents; use Symfony\Component\EventDispatcher\EventDispatcherInterface; +use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface; /** * SimplePreAuthenticationListener implements simple proxying to an authenticator. @@ -39,6 +41,7 @@ class SimplePreAuthenticationListener implements ListenerInterface private $simpleAuthenticator; private $logger; private $dispatcher; + private $sessionStrategy; /** * @param TokenStorageInterface $tokenStorage A TokenStorageInterface instance @@ -62,6 +65,16 @@ public function __construct(TokenStorageInterface $tokenStorage, AuthenticationM $this->dispatcher = $dispatcher; } + /** + * Call this method if your authentication token is stored to a session. + * + * @final + */ + public function setSessionAuthenticationStrategy(SessionAuthenticationStrategyInterface $sessionStrategy) + { + $this->sessionStrategy = $sessionStrategy; + } + /** * Handles basic authentication. */ @@ -87,7 +100,7 @@ public function handle(GetResponseEvent $event) $token = $this->authenticationManager->authenticate($token); - $this->migrateSession($request); + $this->migrateSession($request, $token); $this->tokenStorage->setToken($token); @@ -124,11 +137,12 @@ public function handle(GetResponseEvent $event) } } - private function migrateSession(Request $request) + private function migrateSession(Request $request, TokenInterface $token) { - if (!$request->hasSession() || !$request->hasPreviousSession()) { + if (!$this->sessionStrategy || !$request->hasSession() || !$request->hasPreviousSession()) { return; } - $request->getSession()->migrate(true); + + $this->sessionStrategy->onAuthentication($request, $token); } } diff --git a/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordJsonAuthenticationListener.php b/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordJsonAuthenticationListener.php index 8bde1e00151e8..d7d0b49b4a740 100644 --- a/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordJsonAuthenticationListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordJsonAuthenticationListener.php @@ -33,6 +33,7 @@ use Symfony\Component\Security\Http\Event\InteractiveLoginEvent; use Symfony\Component\Security\Http\HttpUtils; use Symfony\Component\Security\Http\SecurityEvents; +use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface; /** * UsernamePasswordJsonAuthenticationListener is a stateless implementation of @@ -52,6 +53,7 @@ class UsernamePasswordJsonAuthenticationListener implements ListenerInterface private $logger; private $eventDispatcher; private $propertyAccessor; + private $sessionStrategy; public function __construct(TokenStorageInterface $tokenStorage, AuthenticationManagerInterface $authenticationManager, HttpUtils $httpUtils, $providerKey, AuthenticationSuccessHandlerInterface $successHandler = null, AuthenticationFailureHandlerInterface $failureHandler = null, array $options = array(), LoggerInterface $logger = null, EventDispatcherInterface $eventDispatcher = null, PropertyAccessorInterface $propertyAccessor = null) { @@ -139,7 +141,7 @@ private function onSuccess(Request $request, TokenInterface $token) $this->logger->info('User has been authenticated successfully.', array('username' => $token->getUsername())); } - $this->migrateSession($request); + $this->migrateSession($request, $token); $this->tokenStorage->setToken($token); @@ -185,11 +187,22 @@ private function onFailure(Request $request, AuthenticationException $failed) return $response; } - private function migrateSession(Request $request) + /** + * Call this method if your authentication token is stored to a session. + * + * @final + */ + public function setSessionAuthenticationStrategy(SessionAuthenticationStrategyInterface $sessionStrategy) + { + $this->sessionStrategy = $sessionStrategy; + } + + private function migrateSession(Request $request, TokenInterface $token) { - if (!$request->hasSession() || !$request->hasPreviousSession()) { + if (!$this->sessionStrategy || !$request->hasSession() || !$request->hasPreviousSession()) { return; } - $request->getSession()->migrate(true); + + $this->sessionStrategy->onAuthentication($request, $token); } } diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php index 932c5edc9623f..fb27453029404 100644 --- a/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php +++ b/src/Symfony/Component/Security/Http/Tests/Firewall/RememberMeListenerTest.php @@ -145,6 +145,43 @@ public function testOnCoreSecurityIgnoresAuthenticationOptionallyRethrowsExcepti $listener->handle($event); } + public function testOnCoreSecurityAuthenticationExceptionDuringAutoLoginTriggersLoginFail() + { + list($listener, $tokenStorage, $service, $manager) = $this->getListener(); + + $tokenStorage + ->expects($this->once()) + ->method('getToken') + ->will($this->returnValue(null)) + ; + + $exception = new AuthenticationException('Authentication failed.'); + $service + ->expects($this->once()) + ->method('autoLogin') + ->will($this->throwException($exception)) + ; + + $service + ->expects($this->once()) + ->method('loginFail') + ; + + $manager + ->expects($this->never()) + ->method('authenticate') + ; + + $event = $this->getGetResponseEvent(); + $event + ->expects($this->once()) + ->method('getRequest') + ->will($this->returnValue(new Request())) + ; + + $listener->handle($event); + } + public function testOnCoreSecurity() { list($listener, $tokenStorage, $service, $manager) = $this->getListener(); diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordJsonAuthenticationListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordJsonAuthenticationListenerTest.php index 74526fcd543e0..d8bb77bb9e818 100644 --- a/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordJsonAuthenticationListenerTest.php +++ b/src/Symfony/Component/Security/Http/Tests/Firewall/UsernamePasswordJsonAuthenticationListenerTest.php @@ -212,4 +212,42 @@ public function testAttemptAuthenticationIfRequestPathMatchesCheckPath() $this->listener->handle($event); $this->assertSame('ok', $event->getResponse()->getContent()); } + + public function testNoErrorOnMissingSessionStrategy() + { + $this->createListener(); + $request = new Request(array(), array(), array(), array(), array(), array('HTTP_CONTENT_TYPE' => 'application/json'), '{"username": "dunglas", "password": "foo"}'); + $this->configurePreviousSession($request); + $event = new GetResponseEvent($this->getMockBuilder(KernelInterface::class)->getMock(), $request, KernelInterface::MASTER_REQUEST); + + $this->listener->handle($event); + $this->assertEquals('ok', $event->getResponse()->getContent()); + } + + public function testMigratesViaSessionStrategy() + { + $this->createListener(); + $request = new Request(array(), array(), array(), array(), array(), array('HTTP_CONTENT_TYPE' => 'application/json'), '{"username": "dunglas", "password": "foo"}'); + $this->configurePreviousSession($request); + $event = new GetResponseEvent($this->getMockBuilder(KernelInterface::class)->getMock(), $request, KernelInterface::MASTER_REQUEST); + + $sessionStrategy = $this->getMockBuilder('Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface')->getMock(); + $sessionStrategy->expects($this->once()) + ->method('onAuthentication') + ->with($request, $this->isInstanceOf(TokenInterface::class)); + $this->listener->setSessionAuthenticationStrategy($sessionStrategy); + + $this->listener->handle($event); + $this->assertEquals('ok', $event->getResponse()->getContent()); + } + + private function configurePreviousSession(Request $request) + { + $session = $this->getMockBuilder('Symfony\Component\HttpFoundation\Session\SessionInterface')->getMock(); + $session->expects($this->any()) + ->method('getName') + ->willReturn('test_session_name'); + $request->setSession($session); + $request->cookies->set('test_session_name', 'session_cookie_val'); + } } diff --git a/src/Symfony/Component/Security/Http/composer.json b/src/Symfony/Component/Security/Http/composer.json index f6758b6372021..9ede332facfa0 100644 --- a/src/Symfony/Component/Security/Http/composer.json +++ b/src/Symfony/Component/Security/Http/composer.json @@ -27,11 +27,11 @@ }, "require-dev": { "symfony/routing": "~2.8|~3.0|~4.0", - "symfony/security-csrf": "^2.8.41|^3.3.17|^3.4.11|^4.0.11", + "symfony/security-csrf": "^2.8.41|~3.3.17|~3.4.11|^4.0.11", "psr/log": "~1.0" }, "conflict": { - "symfony/security-csrf": "<2.8.41|~3.0,<3.3.17|~3.4,<3.4.11|~4.0,<4.0.11|~4.1,<=4.1.0-beta2" + "symfony/security-csrf": "<2.8.41|~3.0,<3.3.17|~3.4,<3.4.11|~4.0,<4.0.11" }, "suggest": { "symfony/security-csrf": "For using tokens to protect authentication/logout attempts", diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php index 74a133214f55b..eacf755212f6c 100644 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php @@ -200,11 +200,17 @@ protected function handleCircularReference($object) * @param array $context * @param bool $attributesAsString If false, return an array of {@link AttributeMetadataInterface} * + * @throws LogicException if the 'allow_extra_attributes' context variable is false and no class metadata factory is provided + * * @return string[]|AttributeMetadataInterface[]|bool */ protected function getAllowedAttributes($classOrObject, array $context, $attributesAsString = false) { if (!$this->classMetadataFactory) { + if (isset($context[static::ALLOW_EXTRA_ATTRIBUTES]) && !$context[static::ALLOW_EXTRA_ATTRIBUTES]) { + throw new LogicException(sprintf('A class metadata factory must be provided in the constructor when setting "%s" to false.', static::ALLOW_EXTRA_ATTRIBUTES)); + } + return false; } @@ -349,6 +355,12 @@ protected function instantiateObject(array &$data, $class, array &$context, \Ref } } elseif ($allowed && !$ignored && (isset($data[$key]) || array_key_exists($key, $data))) { $parameterData = $data[$key]; + if (null === $parameterData && $constructorParameter->allowsNull()) { + $params[] = null; + // Don't run set for a parameter passed to the constructor + unset($data[$key]); + continue; + } try { if (null !== $constructorParameter->getClass()) { if (!$this->serializer instanceof DenormalizerInterface) { diff --git a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php index ec03fef8cfbc6..020b3d5317a74 100644 --- a/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php +++ b/src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php @@ -255,6 +255,12 @@ private function validateAndDenormalize($currentClass, $attribute, $data, $forma $builtinType = Type::BUILTIN_TYPE_OBJECT; $class = $collectionValueType->getClassName().'[]'; + // Fix a collection that contains the only one element + // This is special to xml format only + if ('xml' === $format && !is_int(key($data))) { + $data = array($data); + } + if (null !== $collectionKeyType = $type->getCollectionKeyType()) { $context['key_type'] = $collectionKeyType; } @@ -331,6 +337,7 @@ private function isMaxDepthReached(array $attributesMetadata, $class, $attribute { if ( !isset($context[static::ENABLE_MAX_DEPTH]) || + !$context[static::ENABLE_MAX_DEPTH] || !isset($attributesMetadata[$attribute]) || null === $maxDepth = $attributesMetadata[$attribute]->getMaxDepth() ) { diff --git a/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php b/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php index 5d0e3d14959c6..5cccdb3360095 100644 --- a/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php +++ b/src/Symfony/Component/Serializer/Normalizer/NormalizerInterface.php @@ -25,7 +25,7 @@ interface NormalizerInterface /** * Normalizes an object into a set of arrays/scalars. * - * @param object $object Object to normalize + * @param mixed $object Object to normalize * @param string $format Format the normalization result will be encoded as * @param array $context Context options for the normalizer * diff --git a/src/Symfony/Component/Serializer/Tests/Fixtures/NullableConstructorArgumentDummy.php b/src/Symfony/Component/Serializer/Tests/Fixtures/NullableConstructorArgumentDummy.php new file mode 100644 index 0000000000000..616fab4ae8df0 --- /dev/null +++ b/src/Symfony/Component/Serializer/Tests/Fixtures/NullableConstructorArgumentDummy.php @@ -0,0 +1,32 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Serializer\Tests\Fixtures; + +class NullableConstructorArgumentDummy +{ + private $foo; + + public function __construct(?\stdClass $foo) + { + $this->foo = $foo; + } + + public function setFoo($foo) + { + $this->foo = 'this setter should not be called when using the constructor argument'; + } + + public function getFoo() + { + return $this->foo; + } +} diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php index e07fb56bf5b7f..28edc05872710 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractNormalizerTest.php @@ -9,6 +9,7 @@ use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; use Symfony\Component\Serializer\Tests\Fixtures\AbstractNormalizerDummy; +use Symfony\Component\Serializer\Tests\Fixtures\NullableConstructorArgumentDummy; use Symfony\Component\Serializer\Tests\Fixtures\ProxyDummy; use Symfony\Component\Serializer\Tests\Fixtures\StaticConstructorDummy; use Symfony\Component\Serializer\Tests\Fixtures\StaticConstructorNormalizer; @@ -116,4 +117,15 @@ public function testObjectWithStaticConstructor() $this->assertEquals('baz', $dummy->quz); $this->assertNull($dummy->foo); } + + /** + * @requires PHP 7.1 + */ + public function testObjectWithNullableConstructorArgument() + { + $normalizer = new ObjectNormalizer(); + $dummy = $normalizer->denormalize(array('foo' => null), NullableConstructorArgumentDummy::class); + + $this->assertNull($dummy->getFoo()); + } } diff --git a/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php b/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php index 3ca418d55ed6b..d461ef267ff86 100644 --- a/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php +++ b/src/Symfony/Component/Serializer/Tests/Normalizer/AbstractObjectNormalizerTest.php @@ -13,9 +13,16 @@ use Doctrine\Common\Annotations\AnnotationReader; use PHPUnit\Framework\TestCase; +use Symfony\Component\PropertyInfo\Extractor\PhpDocExtractor; +use Symfony\Component\PropertyInfo\Type; +use Symfony\Component\Serializer\Exception\NotNormalizableValueException; use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory; use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader; use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer; +use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; +use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; +use Symfony\Component\Serializer\SerializerAwareInterface; +use Symfony\Component\Serializer\SerializerInterface; class AbstractObjectNormalizerTest extends TestCase { @@ -46,7 +53,8 @@ public function testInstantiateObjectDenormalizer() */ public function testDenormalizeWithExtraAttributes() { - $normalizer = new AbstractObjectNormalizerDummy(); + $factory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader())); + $normalizer = new AbstractObjectNormalizerDummy($factory); $normalizer->denormalize( array('fooFoo' => 'foo', 'fooBar' => 'bar'), __NAMESPACE__.'\Dummy', @@ -69,6 +77,90 @@ public function testDenormalizeWithExtraAttributesAndNoGroupsWithMetadataFactory array('allow_extra_attributes' => false) ); } + + public function testDenormalizeCollectionDecodedFromXmlWithOneChild() + { + $denormalizer = $this->getDenormalizerForDummyCollection(); + + $dummyCollection = $denormalizer->denormalize( + array( + 'children' => array( + 'bar' => 'first', + ), + ), + DummyCollection::class, + 'xml' + ); + + $this->assertInstanceOf(DummyCollection::class, $dummyCollection); + $this->assertInternalType('array', $dummyCollection->children); + $this->assertCount(1, $dummyCollection->children); + $this->assertInstanceOf(DummyChild::class, $dummyCollection->children[0]); + } + + public function testDenormalizeCollectionDecodedFromXmlWithTwoChildren() + { + $denormalizer = $this->getDenormalizerForDummyCollection(); + + $dummyCollection = $denormalizer->denormalize( + array( + 'children' => array( + array('bar' => 'first'), + array('bar' => 'second'), + ), + ), + DummyCollection::class, + 'xml' + ); + + $this->assertInstanceOf(DummyCollection::class, $dummyCollection); + $this->assertInternalType('array', $dummyCollection->children); + $this->assertCount(2, $dummyCollection->children); + $this->assertInstanceOf(DummyChild::class, $dummyCollection->children[0]); + $this->assertInstanceOf(DummyChild::class, $dummyCollection->children[1]); + } + + private function getDenormalizerForDummyCollection() + { + $extractor = $this->getMockBuilder(PhpDocExtractor::class)->getMock(); + $extractor->method('getTypes') + ->will($this->onConsecutiveCalls( + array( + new Type( + 'array', + false, + null, + true, + new Type('int'), + new Type('object', false, DummyChild::class) + ), + ), + null + )); + + $denormalizer = new AbstractObjectNormalizerCollectionDummy(null, null, $extractor); + $arrayDenormalizer = new ArrayDenormalizerDummy(); + $serializer = new SerializerCollectionDummy(array($arrayDenormalizer, $denormalizer)); + $arrayDenormalizer->setSerializer($serializer); + $denormalizer->setSerializer($serializer); + + return $denormalizer; + } + + /** + * Test that additional attributes throw an exception if no metadata factory is specified. + * + * @expectedException \Symfony\Component\Serializer\Exception\LogicException + * @expectedExceptionMessage A class metadata factory must be provided in the constructor when setting "allow_extra_attributes" to false. + */ + public function testExtraAttributesException() + { + $normalizer = new ObjectNormalizer(); + + $normalizer->denormalize(array(), \stdClass::class, 'xml', array( + 'allow_extra_attributes' => false, + )); + } } class AbstractObjectNormalizerDummy extends AbstractObjectNormalizer @@ -124,3 +216,125 @@ protected function setAttributeValue($object, $attribute, $value, $format = null $object->$attribute = $value; } } + +class DummyCollection +{ + /** @var DummyChild[] */ + public $children; +} + +class DummyChild +{ + public $bar; +} + +class SerializerCollectionDummy implements SerializerInterface, DenormalizerInterface +{ + private $normalizers; + + /** + * @param DenormalizerInterface[] $normalizers + */ + public function __construct($normalizers) + { + $this->normalizers = $normalizers; + } + + public function serialize($data, $format, array $context = array()) + { + } + + public function deserialize($data, $type, $format, array $context = array()) + { + } + + public function denormalize($data, $type, $format = null, array $context = array()) + { + foreach ($this->normalizers as $normalizer) { + if ($normalizer instanceof DenormalizerInterface && $normalizer->supportsDenormalization($data, $type, $format, $context)) { + return $normalizer->denormalize($data, $type, $format, $context); + } + } + } + + public function supportsDenormalization($data, $type, $format = null) + { + return true; + } +} + +class AbstractObjectNormalizerCollectionDummy extends AbstractObjectNormalizer +{ + protected function extractAttributes($object, $format = null, array $context = array()) + { + } + + protected function getAttributeValue($object, $attribute, $format = null, array $context = array()) + { + } + + protected function setAttributeValue($object, $attribute, $value, $format = null, array $context = array()) + { + $object->$attribute = $value; + } + + protected function isAllowedAttribute($classOrObject, $attribute, $format = null, array $context = array()) + { + return true; + } + + public function instantiateObject(array &$data, $class, array &$context, \ReflectionClass $reflectionClass, $allowedAttributes, $format = null) + { + return parent::instantiateObject($data, $class, $context, $reflectionClass, $allowedAttributes, $format); + } + + public function serialize($data, $format, array $context = array()) + { + } + + public function deserialize($data, $type, $format, array $context = array()) + { + } +} + +class ArrayDenormalizerDummy implements DenormalizerInterface, SerializerAwareInterface +{ + /** + * @var SerializerInterface|DenormalizerInterface + */ + private $serializer; + + /** + * {@inheritdoc} + * + * @throws NotNormalizableValueException + */ + public function denormalize($data, $class, $format = null, array $context = array()) + { + $serializer = $this->serializer; + $class = substr($class, 0, -2); + + foreach ($data as $key => $value) { + $data[$key] = $serializer->denormalize($value, $class, $format, $context); + } + + return $data; + } + + /** + * {@inheritdoc} + */ + public function supportsDenormalization($data, $type, $format = null, array $context = array()) + { + return '[]' === substr($type, -2) + && $this->serializer->supportsDenormalization($data, substr($type, 0, -2), $format, $context); + } + + /** + * {@inheritdoc} + */ + public function setSerializer(SerializerInterface $serializer) + { + $this->serializer = $serializer; + } +} diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf index f2447500ecc3b..60641b5e68dbd 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.lt.xlf @@ -1,4 +1,4 @@ - + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf index dfe7eebf6d53e..4be2198aa3b27 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.mn.xlf @@ -1,4 +1,4 @@ - + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf index de7edfe8dc5ab..11bfead5e505c 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.ru.xlf @@ -1,4 +1,4 @@ - + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf index 834db4015e8e4..6f5fd98ca192e 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.sl.xlf @@ -314,6 +314,10 @@ This is not a valid Business Identifier Code (BIC). To ni veljavna identifikacijska koda podjetja (BIC). + + Error + Napaka + diff --git a/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf b/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf index a2235634bdc44..1a734710a63ba 100644 --- a/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf +++ b/src/Symfony/Component/Validator/Resources/translations/validators.uk.xlf @@ -1,4 +1,4 @@ - + diff --git a/src/Symfony/Component/VarDumper/Caster/SplCaster.php b/src/Symfony/Component/VarDumper/Caster/SplCaster.php index e8be74d60419e..0780c0a371489 100644 --- a/src/Symfony/Component/VarDumper/Caster/SplCaster.php +++ b/src/Symfony/Component/VarDumper/Caster/SplCaster.php @@ -29,30 +29,12 @@ class SplCaster public static function castArrayObject(\ArrayObject $c, array $a, Stub $stub, $isNested) { - $prefix = Caster::PREFIX_VIRTUAL; - $class = $stub->class; - $flags = $c->getFlags(); - - $b = array( - $prefix.'flag::STD_PROP_LIST' => (bool) ($flags & \ArrayObject::STD_PROP_LIST), - $prefix.'flag::ARRAY_AS_PROPS' => (bool) ($flags & \ArrayObject::ARRAY_AS_PROPS), - $prefix.'iteratorClass' => new ClassStub($c->getIteratorClass()), - $prefix.'storage' => $c->getArrayCopy(), - ); - - if ('ArrayObject' === $class) { - $a = $b; - } else { - if (!($flags & \ArrayObject::STD_PROP_LIST)) { - $c->setFlags(\ArrayObject::STD_PROP_LIST); - $a = Caster::castObject($c, $class); - $c->setFlags($flags); - } - - $a += $b; - } + return self::castSplArray($c, $a, $stub, $isNested); + } - return $a; + public static function castArrayIterator(\ArrayIterator $c, array $a, Stub $stub, $isNested) + { + return self::castSplArray($c, $a, $stub, $isNested); } public static function castHeap(\Iterator $c, array $a, Stub $stub, $isNested) @@ -186,7 +168,7 @@ public static function castObjectStorage(\SplObjectStorage $c, array $a, Stub $s $clone = clone $c; foreach ($clone as $obj) { - $storage[spl_object_hash($obj)] = array( + $storage[] = array( 'object' => $obj, 'info' => $clone->getInfo(), ); @@ -205,4 +187,27 @@ public static function castOuterIterator(\OuterIterator $c, array $a, Stub $stub return $a; } + + private static function castSplArray($c, array $a, Stub $stub, $isNested) + { + $prefix = Caster::PREFIX_VIRTUAL; + $class = $stub->class; + $flags = $c->getFlags(); + + if (!($flags & \ArrayObject::STD_PROP_LIST)) { + $c->setFlags(\ArrayObject::STD_PROP_LIST); + $a = Caster::castObject($c, $class); + $c->setFlags($flags); + } + $a += array( + $prefix.'flag::STD_PROP_LIST' => (bool) ($flags & \ArrayObject::STD_PROP_LIST), + $prefix.'flag::ARRAY_AS_PROPS' => (bool) ($flags & \ArrayObject::ARRAY_AS_PROPS), + ); + if ($c instanceof \ArrayObject) { + $a[$prefix.'iteratorClass'] = new ClassStub($c->getIteratorClass()); + } + $a[$prefix.'storage'] = $c->getArrayCopy(); + + return $a; + } } diff --git a/src/Symfony/Component/VarDumper/Cloner/AbstractCloner.php b/src/Symfony/Component/VarDumper/Cloner/AbstractCloner.php index e3246927001a4..9e18b2a423060 100644 --- a/src/Symfony/Component/VarDumper/Cloner/AbstractCloner.php +++ b/src/Symfony/Component/VarDumper/Cloner/AbstractCloner.php @@ -95,6 +95,7 @@ abstract class AbstractCloner implements ClonerInterface 'AMQPEnvelope' => array('Symfony\Component\VarDumper\Caster\AmqpCaster', 'castEnvelope'), 'ArrayObject' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayObject'), + 'ArrayIterator' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castArrayIterator'), 'SplDoublyLinkedList' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castDoublyLinkedList'), 'SplFileInfo' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castFileInfo'), 'SplFileObject' => array('Symfony\Component\VarDumper\Caster\SplCaster', 'castFileObject'), diff --git a/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php b/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php index 48531562de677..d3c9ec25f5f6d 100644 --- a/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php +++ b/src/Symfony/Component/VarDumper/Tests/Caster/SplCasterTest.php @@ -163,4 +163,51 @@ public function testCastObjectStorageDumpsInfo() $this->assertDumpMatchesFormat('%ADateTime%A', $var); } + + public function testCastArrayObject() + { + if (\defined('HHVM_VERSION')) { + $this->markTestSkipped('HHVM as different internal details.'); + } + $var = new \ArrayObject(array(123)); + $var->foo = 234; + + $expected = << 123 + ] +} +EOTXT; + $this->assertDumpEquals($expected, $var); + } + + public function testArrayIterator() + { + if (\defined('HHVM_VERSION')) { + $this->markTestSkipped('HHVM as different internal details.'); + } + $var = new MyArrayIterator(array(234)); + + $expected = << 234 + ] +} +EOTXT; + $this->assertDumpEquals($expected, $var); + } +} + +class MyArrayIterator extends \ArrayIterator +{ + private $foo = 123; } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy