lexxpavlov
@lexxpavlov
Программист, преподаватель

Почему в компоненте Symfony Form интерфейс OptionsResolverInterface отмечен устаревшим?

Давно уже заметил, что в компоненте Form интерфейс OptionsResolverInterface отмечен как устаревший. Но даже в официальной документации он используется при создании класса формы:
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'AppBundle\Entity\Task',
    ));
}


Есть ли обновлённый аналог на замену OptionsResolverInterface? Или иначе как задавать дефолтные значения правильным образом?

В описании интерфейса Symfony\Component\OptionsResolver\OptionsResolverInterface указано:
@deprecated Deprecated since Symfony 2.6, to be removed in Symfony 3.0.
Use {@link OptionsResolver} instead.

Класс OptionsResolver - это класс, реализующий тот самый интерфейс OptionsResolverInterface. Но если поставить его использование в методе setDefaultOptions, то он не пройдёт проверку типа аргумента.

Получается, пока (в версии до 3.0) нужно продолжать использовать устаревший OptionsResolverInterface?
  • Вопрос задан
  • 478 просмотров
Решения вопроса 1
@shoomyst
dumb
Например так: symfony.com/doc/master/book/forms.html#validation-... Новый метод configureOptions, начиная с 2.7
Но пока можно использовать старый вариант, если не раздражают перечеркнутые слова в том же шторме
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы