From 5cb532d2deda430312a3ee2749031267bb63281f Mon Sep 17 00:00:00 2001 From: Roland Franssen Date: Sun, 14 Oct 2018 14:03:53 +0200 Subject: [PATCH] [Form] Deprecate TimezoneType regions option --- UPGRADE-4.2.md | 2 ++ UPGRADE-5.0.md | 2 ++ src/Symfony/Component/Form/CHANGELOG.md | 1 + .../Component/Form/Extension/Core/Type/TimezoneType.php | 3 ++- src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php | 2 +- .../Form/Tests/Extension/Core/Type/TimezoneTypeTest.php | 4 ++++ 6 files changed, 12 insertions(+), 2 deletions(-) diff --git a/UPGRADE-4.2.md b/UPGRADE-4.2.md index 4b1c481569..9a78f891a9 100644 --- a/UPGRADE-4.2.md +++ b/UPGRADE-4.2.md @@ -104,6 +104,8 @@ Form {% endfor %} ``` + * The `regions` option of the `TimezoneType` is deprecated. + HttpFoundation -------------- diff --git a/UPGRADE-5.0.md b/UPGRADE-5.0.md index 59863eb8cc..ade8f69f7c 100644 --- a/UPGRADE-5.0.md +++ b/UPGRADE-5.0.md @@ -121,6 +121,8 @@ Form {% endfor %} ``` + * The `regions` option was removed from the `TimezoneType`. + FrameworkBundle --------------- diff --git a/src/Symfony/Component/Form/CHANGELOG.md b/src/Symfony/Component/Form/CHANGELOG.md index d5e8cc7004..f1cbf0ba4f 100644 --- a/src/Symfony/Component/Form/CHANGELOG.md +++ b/src/Symfony/Component/Form/CHANGELOG.md @@ -40,6 +40,7 @@ CHANGELOG * added a cause when a CSRF error has occurred * deprecated the `scale` option of the `IntegerType` * removed restriction on allowed HTTP methods + * deprecated the `regions` option of the `TimezoneType` 4.1.0 ----- diff --git a/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php b/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php index fb548fd932..b1a8a03551 100644 --- a/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php @@ -37,7 +37,7 @@ class TimezoneType extends AbstractType { $resolver->setDefaults(array( 'choice_loader' => function (Options $options) { - $regions = $options['regions']; + $regions = $options->offsetGet('regions', false); return new CallbackChoiceLoader(function () use ($regions) { return self::getTimezones($regions); @@ -51,6 +51,7 @@ class TimezoneType extends AbstractType $resolver->setAllowedValues('input', array('string', 'datetimezone')); $resolver->setAllowedTypes('regions', 'int'); + $resolver->setDeprecated('regions', 'The option "%name%" is deprecated since Symfony 4.2.'); } /** diff --git a/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php b/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php index 0d5d85675b..cc549a4bec 100644 --- a/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php +++ b/src/Symfony/Component/Form/Tests/Command/DebugCommandTest.php @@ -45,7 +45,7 @@ class DebugCommandTest extends TestCase Built-in form types (Symfony\Component\Form\Extension\Core\Type) ---------------------------------------------------------------- - IntegerType + IntegerType, TimezoneType Service form types ------------------ diff --git a/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php b/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php index 51578bd6ad..de52a0284d 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Core/Type/TimezoneTypeTest.php @@ -53,6 +53,10 @@ class TimezoneTypeTest extends BaseTypeTest $this->assertEquals(array(new \DateTimeZone('Europe/Amsterdam'), new \DateTimeZone('Europe/Paris')), $form->getData()); } + /** + * @group legacy + * @expectedDeprecation The option "regions" is deprecated since Symfony 4.2. + */ public function testFilterByRegions() { $choices = $this->factory->create(static::TESTED_TYPE, null, array('regions' => \DateTimeZone::EUROPE))