2017-01-30 17 views
-1

Мне нужно создать кучу форм в Symfony 2.8, используя наследование. Я видел два подхода:Формы в Symfony 2: 'inherit_data' или наследование класса?

  1. Использование наследования «обычного» класса, как описано in the first answer here.
  2. Использование inherit_data.

В чем разница между этими двумя? Зачем мне выбирать друг друга?

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

ответ

1

Вкратце, вся необходимая информация уже раскрыта в ваших ссылках.

Наследование формы - это настоящее наследование класса ООП. inherit_data используется для композиционного подхода, поэтому вы можете использовать его в формах, которые на самом деле не так ограничены логически, чтобы наследоваться от базового класса.

Это реализует композицию над наследственным подходом https://en.m.wikipedia.org/wiki/Composition_over_inheritance