From 0c1fe395e5a817d48e83ba4dda00263fbd522d4d Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Fri, 15 Mar 2013 12:44:04 +0100 Subject: [PATCH] [Form] Changed component to use the Intl component --- .../Form/Extension/Core/Type/CountryType.php | 3 ++- .../Form/Extension/Core/Type/LanguageType.php | 3 ++- .../Form/Extension/Core/Type/LocaleType.php | 3 ++- .../Tests/Extension/Core/Type/LocalizedTestCase.php | 12 +++++++++--- src/Symfony/Component/Form/composer.json | 2 +- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php b/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php index 4d5f29b995..cbb0c01fe9 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Form\Extension\Core\Type; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Intl\Intl; use Symfony\Component\Locale\Locale; use Symfony\Component\OptionsResolver\OptionsResolverInterface; @@ -23,7 +24,7 @@ class CountryType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( - 'choices' => Locale::getDisplayCountries(\Locale::getDefault()), + 'choices' => Intl::getRegionBundle()->getCountryNames(\Locale::getDefault()), )); } diff --git a/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php b/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php index 1255ea9afc..5c45cffde0 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Form\Extension\Core\Type; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Intl\Intl; use Symfony\Component\Locale\Locale; use Symfony\Component\OptionsResolver\OptionsResolverInterface; @@ -23,7 +24,7 @@ class LanguageType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( - 'choices' => Locale::getDisplayLanguages(\Locale::getDefault()), + 'choices' => Intl::getLanguageBundle()->getLanguageNames(\Locale::getDefault()), )); } diff --git a/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php b/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php index e9793aae30..43d1c4bbc3 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php @@ -12,6 +12,7 @@ namespace Symfony\Component\Form\Extension\Core\Type; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Intl\Intl; use Symfony\Component\Locale\Locale; use Symfony\Component\OptionsResolver\OptionsResolverInterface; @@ -23,7 +24,7 @@ class LocaleType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefaults(array( - 'choices' => Locale::getDisplayLocales(\Locale::getDefault()), + 'choices' => Intl::getLocaleBundle()->getLocaleNames(\Locale::getDefault()), )); } diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocalizedTestCase.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocalizedTestCase.php index 1772d8cc55..18a939d1f4 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocalizedTestCase.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/LocalizedTestCase.php @@ -11,18 +11,24 @@ namespace Symfony\Component\Form\Tests\Extension\Core\Type; +use Symfony\Component\Intl\Intl; + abstract class LocalizedTestCase extends TypeTestCase { protected function setUp() { parent::setUp(); - if (!class_exists('Symfony\Component\Locale\Locale')) { - $this->markTestSkipped('The "Locale" component is not available'); + if (!class_exists('Symfony\Component\Intl\Intl')) { + $this->markTestSkipped('The "Intl" component is not available'); } - if (!extension_loaded('intl')) { + if (!Intl::isExtensionLoaded()) { $this->markTestSkipped('The "intl" extension is not available'); } + + Intl::setDataSource(Intl::STUB); + + \Locale::setDefault('en'); } } diff --git a/src/Symfony/Component/Form/composer.json b/src/Symfony/Component/Form/composer.json index 5ceb9095cc..107561edae 100644 --- a/src/Symfony/Component/Form/composer.json +++ b/src/Symfony/Component/Form/composer.json @@ -18,7 +18,7 @@ "require": { "php": ">=5.3.3", "symfony/event-dispatcher": "~2.1", - "symfony/locale": "~2.0", + "symfony/intl": "~2.3", "symfony/options-resolver": ">=2.1,<2.4-dev", "symfony/property-access": ">=2.2,<2.4-dev" },