minor #26069 [LocaleValidator] Use Symfony\Component\Intl\Locale instead of \Locale + read aliases from bundle only if it is required (phansys)

This PR was merged into the 4.1-dev branch.

Discussion
----------

[LocaleValidator] Use `Symfony\Component\Intl\Locale` instead of `\Locale` + read aliases from bundle only if it is required

|Q            |A     |
|---          |---   |
|Branch       |master|
|Bug fix?     |no    |
|New feature? |no    |
|BC breaks?   |no    |
|Deprecations?|no    |
|Tests pass?  |yes   |
|Fixed tickets|n/a   |
|License      |MIT   |
|Doc PR       |n/a   |

Commits
-------

63497e1761 Use `Symfony\Component\Intl\Locale` instead of `\Locale` + read aliases from bundle only if it is required
This commit is contained in:
Fabien Potencier 2018-02-07 07:16:59 +01:00
commit 1ec2219773

View File

@ -12,6 +12,7 @@
namespace Symfony\Component\Validator\Constraints;
use Symfony\Component\Intl\Intl;
use Symfony\Component\Intl\Locale as IntlLocale;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\Validator\Exception\UnexpectedTypeException;
@ -42,12 +43,12 @@ class LocaleValidator extends ConstraintValidator
$value = (string) $value;
if ($constraint->canonicalize) {
$value = \Locale::canonicalize($value);
$value = IntlLocale::canonicalize($value);
}
$locales = Intl::getLocaleBundle()->getLocaleNames();
$aliases = Intl::getLocaleBundle()->getAliases();
$localeBundle = Intl::getLocaleBundle();
$locales = $localeBundle->getLocaleNames();
if (!isset($locales[$value]) && !in_array($value, $aliases)) {
if (!isset($locales[$value]) && !in_array($value, $localeBundle->getAliases(), true)) {
$this->context->buildViolation($constraint->message)
->setParameter('{{ value }}', $this->formatValue($value))
->setCode(Locale::NO_SUCH_LOCALE_ERROR)