2017-01-30 6 views
-1

私は、継承を使ってSymfony 2.8でたくさんのフォームを作成する必要があります。私は2つのアプローチが使用されていることを見てきました。in the first answer hereのような '通常の'クラス継承を使用しています:Symfony 2のフォーム: 'inherit_data'またはクラス継承?

  1. inherit_dataを使用してください。

2つの違いは何ですか?なぜ私はもう一方を選ぶだろうか?

また、「ベース」フォームタイプを抽象クラスにして、それ自体で使用されないようにすることはできますか?これには欠点がありますか?

答えて

1

すべての必要な情報は、あなたが投稿したリンクに既に開示されています。

フォームの継承は、実際のOOPクラスの継承に関するものです。 inherit_dataは合成アプローチに使用されるので、フォームで使用することができます。これは、基本クラスから継承するために論理的にはあまり限定されていません。

これは継承を超えたコンポジションを実装しています https://en.m.wikipedia.org/wiki/Composition_over_inheritance