@@ -665,3 +665,57 @@ Security
665665 * ` SwitchUserListener `
666666 * ` AccessListener `
667667 * ` RememberMeListener `
668+
669+ UPGRADE FROM 2.7.1 to 2.7.2
670+ ===========================
671+
672+ Form
673+ ----
674+
675+ * In order to fix a few regressions in the new ` ChoiceList ` implementation,
676+ a few details had to be changed compared to 2.7.
677+
678+ The legacy ` Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface `
679+ now does not extend the new ` Symfony\Component\Form\ChoiceList\ChoiceListInterface `
680+ anymore. If you pass an implementation of the old interface in a context
681+ where the new interface is required, wrap the list into a
682+ ` LegacyChoiceListAdapter ` :
683+
684+ Before:
685+
686+ ``` php
687+ use Symfony\Component\Form\ChoiceList\ChoiceListInterface;
688+
689+ function doSomething(ChoiceListInterface $choiceList)
690+ {
691+ // ...
692+ }
693+
694+ doSomething($legacyList);
695+ ```
696+
697+ After:
698+
699+ ``` php
700+ use Symfony\Component\Form\ChoiceList\ChoiceListInterface;
701+ use Symfony\Component\Form\ChoiceList\LegacyChoiceListAdapter;
702+
703+ function doSomething(ChoiceListInterface $choiceList)
704+ {
705+ // ...
706+ }
707+
708+ doSomething(new LegacyChoiceListAdapter($legacyList));
709+ ```
710+
711+ The new ` ChoiceListInterface ` now has two additional methods
712+ ` getStructuredValues() ` and ` getOriginalKeys() ` . You should add these methods
713+ if you implement this interface. See their doc blocks and the implementation
714+ of the core choice lists for inspiration.
715+
716+ The method ` ArrayKeyChoiceList::toArrayKey() ` was marked as internal. This
717+ method was never supposed to be used outside the class.
718+
719+ The method ` ChoiceListFactoryInterface::createView() ` does not accept arrays
720+ and ` Traversable ` instances anymore for the ` $groupBy ` parameter. Pass a
721+ callable instead.
0 commit comments