Skip to content

Commit 1ee4cab

Browse files
committed
feature #12891 [Form] Deprecated setDefaultOptions() in favor of configureOptions() (peterrehm)
This PR was merged into the 2.7 branch. Discussion ---------- [Form] Deprecated setDefaultOptions() in favor of configureOptions() | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | yes | Tests pass? | | Fixed tickets | #12782 | License | MIT | Doc PR | symfony/symfony-docs#4786 This tries to provide a compatible API with the depreciation of the OptionResolverInterface. I would like to have this in 2.6.2 but I think that might not be possible? To me I think we should always provide an API where you do not need to use deprecated classes. Also can you think of any way to trigger errors on the use of the deprecated setDefaultOptions() method? Since it is usually overwritten without calling the parent class this might be tricky. Maybe only in the resolver if we can check if actual options has been resolved in a call to setDefaultOptions. Commits ------- 3d43cae Deprecated setDefaultOptions() in favor of configureOptions()
2 parents 175c737 + a7346eb commit 1ee4cab

37 files changed

+121
-72
lines changed

AbstractType.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Form;
1313

14+
use Symfony\Component\OptionsResolver\OptionsResolver;
1415
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
1516

1617
/**
@@ -43,6 +44,16 @@ public function finishView(FormView $view, FormInterface $form, array $options)
4344
* {@inheritdoc}
4445
*/
4546
public function setDefaultOptions(OptionsResolverInterface $resolver)
47+
{
48+
$this->configureOptions($resolver);
49+
}
50+
51+
/**
52+
* Configures the options for this type.
53+
*
54+
* @param OptionsResolver $resolver The resolver for the options.
55+
*/
56+
public function configureOptions(OptionsResolver $resolver)
4657
{
4758
}
4859

AbstractTypeExtension.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Component\Form;
1313

14+
use Symfony\Component\OptionsResolver\OptionsResolver;
1415
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
1516

1617
/**
@@ -43,6 +44,16 @@ public function finishView(FormView $view, FormInterface $form, array $options)
4344
* {@inheritdoc}
4445
*/
4546
public function setDefaultOptions(OptionsResolverInterface $resolver)
47+
{
48+
$this->configureOptions($resolver);
49+
}
50+
51+
/**
52+
* Configures the options for this type.
53+
*
54+
* @param OptionsResolver $resolver The resolver for the options.
55+
*/
56+
public function configureOptions(OptionsResolver $resolver)
4657
{
4758
}
4859
}

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
CHANGELOG
22
=========
33

4+
2.7.0
5+
-----
6+
7+
* deprecated the overwriting of AbstractType::setDefaultOptions() in favor of overwriting AbstractType::configureOptions().
8+
* deprecated the overwriting of AbstractTypeExtension::setDefaultOptions() in favor of overwriting AbstractTypeExtension::configureOptions().
9+
410
2.6.2
511
-----
612

Extension/Core/Type/BaseType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
use Symfony\Component\Form\FormBuilderInterface;
1616
use Symfony\Component\Form\FormInterface;
1717
use Symfony\Component\Form\FormView;
18-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
18+
use Symfony\Component\OptionsResolver\OptionsResolver;
1919

2020
/**
2121
* Encapsulates common logic of {@link FormType} and {@link ButtonType}.
@@ -111,7 +111,7 @@ public function buildView(FormView $view, FormInterface $form, array $options)
111111
/**
112112
* {@inheritdoc}
113113
*/
114-
public function setDefaultOptions(OptionsResolverInterface $resolver)
114+
public function configureOptions(OptionsResolver $resolver)
115115
{
116116
$resolver->setDefaults(array(
117117
'block_name' => null,

Extension/Core/Type/BirthdayType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
namespace Symfony\Component\Form\Extension\Core\Type;
1313

1414
use Symfony\Component\Form\AbstractType;
15-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
15+
use Symfony\Component\OptionsResolver\OptionsResolver;
1616

1717
class BirthdayType extends AbstractType
1818
{
1919
/**
2020
* {@inheritdoc}
2121
*/
22-
public function setDefaultOptions(OptionsResolverInterface $resolver)
22+
public function configureOptions(OptionsResolver $resolver)
2323
{
2424
$resolver->setDefaults(array(
2525
'years' => range(date('Y') - 120, date('Y')),

Extension/Core/Type/ButtonType.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
namespace Symfony\Component\Form\Extension\Core\Type;
1313

1414
use Symfony\Component\Form\ButtonTypeInterface;
15-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
15+
use Symfony\Component\OptionsResolver\OptionsResolver;
1616

1717
/**
1818
* A form button.
@@ -39,9 +39,9 @@ public function getName()
3939
/**
4040
* {@inheritdoc}
4141
*/
42-
public function setDefaultOptions(OptionsResolverInterface $resolver)
42+
public function configureOptions(OptionsResolver $resolver)
4343
{
44-
parent::setDefaultOptions($resolver);
44+
parent::configureOptions($resolver);
4545

4646
$resolver->setDefaults(array(
4747
'auto_initialize' => false,

Extension/Core/Type/CheckboxType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Symfony\Component\Form\FormInterface;
1717
use Symfony\Component\Form\Extension\Core\DataTransformer\BooleanToStringTransformer;
1818
use Symfony\Component\Form\FormView;
19-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
19+
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
class CheckboxType extends AbstractType
2222
{
@@ -49,7 +49,7 @@ public function buildView(FormView $view, FormInterface $form, array $options)
4949
/**
5050
* {@inheritdoc}
5151
*/
52-
public function setDefaultOptions(OptionsResolverInterface $resolver)
52+
public function configureOptions(OptionsResolver $resolver)
5353
{
5454
$emptyData = function (FormInterface $form, $viewData) {
5555
return $viewData;

Extension/Core/Type/ChoiceType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
use Symfony\Component\Form\Extension\Core\DataTransformer\ChoicesToValuesTransformer;
2727
use Symfony\Component\Form\Extension\Core\DataTransformer\ChoicesToBooleanArrayTransformer;
2828
use Symfony\Component\OptionsResolver\Options;
29-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
29+
use Symfony\Component\OptionsResolver\OptionsResolver;
3030

3131
class ChoiceType extends AbstractType
3232
{
@@ -161,7 +161,7 @@ public function finishView(FormView $view, FormInterface $form, array $options)
161161
/**
162162
* {@inheritdoc}
163163
*/
164-
public function setDefaultOptions(OptionsResolverInterface $resolver)
164+
public function configureOptions(OptionsResolver $resolver)
165165
{
166166
$choiceListCache = & $this->choiceListCache;
167167

Extension/Core/Type/CollectionType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use Symfony\Component\Form\FormInterface;
1818
use Symfony\Component\Form\Extension\Core\EventListener\ResizeFormListener;
1919
use Symfony\Component\OptionsResolver\Options;
20-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
20+
use Symfony\Component\OptionsResolver\OptionsResolver;
2121

2222
class CollectionType extends AbstractType
2323
{
@@ -72,7 +72,7 @@ public function finishView(FormView $view, FormInterface $form, array $options)
7272
/**
7373
* {@inheritdoc}
7474
*/
75-
public function setDefaultOptions(OptionsResolverInterface $resolver)
75+
public function configureOptions(OptionsResolver $resolver)
7676
{
7777
$optionsNormalizer = function (Options $options, $value) {
7878
$value['block_name'] = 'entry';

Extension/Core/Type/CountryType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313

1414
use Symfony\Component\Form\AbstractType;
1515
use Symfony\Component\Intl\Intl;
16-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
16+
use Symfony\Component\OptionsResolver\OptionsResolver;
1717

1818
class CountryType extends AbstractType
1919
{
2020
/**
2121
* {@inheritdoc}
2222
*/
23-
public function setDefaultOptions(OptionsResolverInterface $resolver)
23+
public function configureOptions(OptionsResolver $resolver)
2424
{
2525
$resolver->setDefaults(array(
2626
'choices' => Intl::getRegionBundle()->getCountryNames(),

Extension/Core/Type/CurrencyType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313

1414
use Symfony\Component\Form\AbstractType;
1515
use Symfony\Component\Intl\Intl;
16-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
16+
use Symfony\Component\OptionsResolver\OptionsResolver;
1717

1818
class CurrencyType extends AbstractType
1919
{
2020
/**
2121
* {@inheritdoc}
2222
*/
23-
public function setDefaultOptions(OptionsResolverInterface $resolver)
23+
public function configureOptions(OptionsResolver $resolver)
2424
{
2525
$resolver->setDefaults(array(
2626
'choices' => Intl::getCurrencyBundle()->getCurrencyNames(),

Extension/Core/Type/DateTimeType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToRfc3339Transformer;
2626
use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToPartsTransformer;
2727
use Symfony\Component\OptionsResolver\Options;
28-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
28+
use Symfony\Component\OptionsResolver\OptionsResolver;
2929

3030
class DateTimeType extends AbstractType
3131
{
@@ -200,7 +200,7 @@ public function buildView(FormView $view, FormInterface $form, array $options)
200200
/**
201201
* {@inheritdoc}
202202
*/
203-
public function setDefaultOptions(OptionsResolverInterface $resolver)
203+
public function configureOptions(OptionsResolver $resolver)
204204
{
205205
$compound = function (Options $options) {
206206
return $options['widget'] !== 'single_text';

Extension/Core/Type/DateType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer;
2222
use Symfony\Component\Form\ReversedTransformer;
2323
use Symfony\Component\OptionsResolver\Options;
24-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
24+
use Symfony\Component\OptionsResolver\OptionsResolver;
2525
use Symfony\Component\OptionsResolver\Exception\InvalidOptionsException;
2626

2727
class DateType extends AbstractType
@@ -165,7 +165,7 @@ public function finishView(FormView $view, FormInterface $form, array $options)
165165
/**
166166
* {@inheritdoc}
167167
*/
168-
public function setDefaultOptions(OptionsResolverInterface $resolver)
168+
public function configureOptions(OptionsResolver $resolver)
169169
{
170170
$compound = function (Options $options) {
171171
return $options['widget'] !== 'single_text';

Extension/Core/Type/FileType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use Symfony\Component\Form\AbstractType;
1515
use Symfony\Component\Form\FormInterface;
1616
use Symfony\Component\Form\FormView;
17-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
17+
use Symfony\Component\OptionsResolver\OptionsResolver;
1818

1919
class FileType extends AbstractType
2020
{
@@ -47,7 +47,7 @@ public function finishView(FormView $view, FormInterface $form, array $options)
4747
/**
4848
* {@inheritdoc}
4949
*/
50-
public function setDefaultOptions(OptionsResolverInterface $resolver)
50+
public function configureOptions(OptionsResolver $resolver)
5151
{
5252
$resolver->setDefaults(array(
5353
'compound' => false,

Extension/Core/Type/FormType.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use Symfony\Component\Form\Extension\Core\DataMapper\PropertyPathMapper;
1919
use Symfony\Component\Form\Exception\LogicException;
2020
use Symfony\Component\OptionsResolver\Options;
21-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
21+
use Symfony\Component\OptionsResolver\OptionsResolver;
2222
use Symfony\Component\PropertyAccess\PropertyAccess;
2323
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
2424

@@ -122,9 +122,9 @@ public function finishView(FormView $view, FormInterface $form, array $options)
122122
/**
123123
* {@inheritdoc}
124124
*/
125-
public function setDefaultOptions(OptionsResolverInterface $resolver)
125+
public function configureOptions(OptionsResolver $resolver)
126126
{
127-
parent::setDefaultOptions($resolver);
127+
parent::configureOptions($resolver);
128128

129129
// Derive "data_class" option from passed "data" object
130130
$dataClass = function (Options $options) {

Extension/Core/Type/HiddenType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
namespace Symfony\Component\Form\Extension\Core\Type;
1313

1414
use Symfony\Component\Form\AbstractType;
15-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
15+
use Symfony\Component\OptionsResolver\OptionsResolver;
1616

1717
class HiddenType extends AbstractType
1818
{
1919
/**
2020
* {@inheritdoc}
2121
*/
22-
public function setDefaultOptions(OptionsResolverInterface $resolver)
22+
public function configureOptions(OptionsResolver $resolver)
2323
{
2424
$resolver->setDefaults(array(
2525
// hidden fields cannot have a required attribute

Extension/Core/Type/IntegerType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use Symfony\Component\Form\AbstractType;
1515
use Symfony\Component\Form\FormBuilderInterface;
1616
use Symfony\Component\Form\Extension\Core\DataTransformer\IntegerToLocalizedStringTransformer;
17-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
17+
use Symfony\Component\OptionsResolver\OptionsResolver;
1818

1919
class IntegerType extends AbstractType
2020
{
@@ -34,7 +34,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
3434
/**
3535
* {@inheritdoc}
3636
*/
37-
public function setDefaultOptions(OptionsResolverInterface $resolver)
37+
public function configureOptions(OptionsResolver $resolver)
3838
{
3939
$resolver->setDefaults(array(
4040
// default precision is locale specific (usually around 3)

Extension/Core/Type/LanguageType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313

1414
use Symfony\Component\Form\AbstractType;
1515
use Symfony\Component\Intl\Intl;
16-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
16+
use Symfony\Component\OptionsResolver\OptionsResolver;
1717

1818
class LanguageType extends AbstractType
1919
{
2020
/**
2121
* {@inheritdoc}
2222
*/
23-
public function setDefaultOptions(OptionsResolverInterface $resolver)
23+
public function configureOptions(OptionsResolver $resolver)
2424
{
2525
$resolver->setDefaults(array(
2626
'choices' => Intl::getLanguageBundle()->getLanguageNames(),

Extension/Core/Type/LocaleType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@
1313

1414
use Symfony\Component\Form\AbstractType;
1515
use Symfony\Component\Intl\Intl;
16-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
16+
use Symfony\Component\OptionsResolver\OptionsResolver;
1717

1818
class LocaleType extends AbstractType
1919
{
2020
/**
2121
* {@inheritdoc}
2222
*/
23-
public function setDefaultOptions(OptionsResolverInterface $resolver)
23+
public function configureOptions(OptionsResolver $resolver)
2424
{
2525
$resolver->setDefaults(array(
2626
'choices' => Intl::getLocaleBundle()->getLocaleNames(),

Extension/Core/Type/MoneyType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Symfony\Component\Form\FormBuilderInterface;
1717
use Symfony\Component\Form\Extension\Core\DataTransformer\MoneyToLocalizedStringTransformer;
1818
use Symfony\Component\Form\FormView;
19-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
19+
use Symfony\Component\OptionsResolver\OptionsResolver;
2020

2121
class MoneyType extends AbstractType
2222
{
@@ -48,7 +48,7 @@ public function buildView(FormView $view, FormInterface $form, array $options)
4848
/**
4949
* {@inheritdoc}
5050
*/
51-
public function setDefaultOptions(OptionsResolverInterface $resolver)
51+
public function configureOptions(OptionsResolver $resolver)
5252
{
5353
$resolver->setDefaults(array(
5454
'precision' => 2,

Extension/Core/Type/NumberType.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use Symfony\Component\Form\AbstractType;
1515
use Symfony\Component\Form\FormBuilderInterface;
1616
use Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer;
17-
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
17+
use Symfony\Component\OptionsResolver\OptionsResolver;
1818

1919
class NumberType extends AbstractType
2020
{
@@ -33,7 +33,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
3333
/**
3434
* {@inheritdoc}
3535
*/
36-
public function setDefaultOptions(OptionsResolverInterface $resolver)
36+
public function configureOptions(OptionsResolver $resolver)
3737
{
3838
$resolver->setDefaults(array(
3939
// default precision is locale specific (usually around 3)

0 commit comments

Comments
 (0)