Doctrine2アプリケーションで私のクラスのコンストラクタを書いています.Fruits、Apple、Bananasとしましょう。Doctrine2:単一のテーブル継承で親クラスを抽象化する必要がありますか?
Fruits
はApples
とBananas
がフィールドtype
上の単一テーブル継承を使用してFruits
から継承する親クラスです。
Doctrine2のドキュメントページには、単一のテーブル継承のための例があります。単一表継承の使用を常に区別している場合、識別子クラスのフィールドは常に設定する必要があるため、基本クラスFruits
は抽象クラスである必要がありますか?もしそうなら、この動作を防ぐためにFruits
のコンストラクタも保護する必要がありますか?
ありがとうございます!私は、ドキュメント内の親オブジェクトを区別する微妙なことを理解していないことに気付きました。私のアプリケーションでは、スーパークラスのタイプは欲しくないので、子供の一人にして欲しいので、おそらく大丈夫でしょうか? –
親が個人的にインスタンス化されるべきではないと感じる場合、私はコンストラクタを非公開にします。しかし、そうです、あなたのエンティティをアプリケーションの要件に合わせてください、それが彼らのためにあります。また、discriminatorフィールドは、doctrineによって内部的に使用されます。これを設定/取得する必要はありません。 –