今日、非常に興味深い主題が 2 つの視点から生じました。
Doctrine エンティティの使用
- セッターメソッドが呼び出された時点でデータの検証を行う必要がありますか? つまり、setFieldName() メソッド内、または
- エンティティでイベントがトリガーされたときに、有効なデータについてエンティティ全体を検証する必要がありますか?
これについて、通常の、または実証済みの理論および/または見解はありますか?
今日、非常に興味深い主題が 2 つの視点から生じました。
Doctrine エンティティの使用
これについて、通常の、または実証済みの理論および/または見解はありますか?
これについて「通常の」/標準的な方法があるとは思いません-それはあなたのニーズに依存すると思います。私の見解をお伝えします。私にとって、データの検証はセッターで行う必要があります。つまり、できるだけ早く行う必要があります。この方法では、エンティティに無効なデータ セットを設定することはできず、永続化する際の頭痛の種から解放されます。
次のように考えてみてください。ガソリンで走る車があるとしましょう。給油するためにガソリンスタンドに行きます。ガソリンとガソリンの 2 つのポンプがあります。検証がなければ、どちらのタイプの燃料でもそこに入れることができ、エンジンをオンにするまで何も起こりません. しかしその際、燃料の種類を間違えると手遅れになってしまいます。ブーオーム!もちろんエンティティは爆発しません。;)
そうは言っても、別のプロパティ(まだ設定されていない)に依存している可能性があるため、単一のセッターで検証を実行できない場合があります。企業の VATID を確認して強制できるようにするために、プロパティ user_type(private|company) を使用する必要があるユーザー エンティティの VATID のようなもの。この場合、PrePersist/PreUpdate validationを実行します。