0

今日、非常に興味深い主題が 2 つの視点から生じました。

Doctrine エンティティの使用

  1. セッターメソッドが呼び出された時点でデータの検証を行う必要がありますか? つまり、setFieldName() メソッド内、または
  2. エンティティでイベントがトリガーされたときに、有効なデータについてエンティティ全体を検証する必要がありますか?

これについて、通常の、または実証済みの理論および/または見解はありますか?

4

1 に答える 1

0

これについて「通常の」/標準的な方法があるとは思いません-それはあなたのニーズに依存すると思います。私の見解をお伝えします。私にとって、データの検証はセッターで行う必要があります。つまり、できるだけ早く行う必要があります。この方法では、エンティティに無効なデータ セットを設定することはできず、永続化する際の頭痛の種から解放されます。

次のように考えてみてください。ガソリンで走る車があるとしましょう。給油するためにガソリンスタンドに行きます。ガソリンとガソリンの 2 つのポンプがあります。検証がなければ、どちらのタイプの燃料でもそこに入れることができ、エンジンをオンにするまで何も起こりません. しかしその際、燃料の種類を間違えると手遅れになってしまいます。ブーオーム!もちろんエンティティは爆発しません。;)

そうは言っても、別のプロパティ(まだ設定されていない)に依存している可能性があるため、単一のセッターで検証を実行できない場合があります。企業の VATID を確認して強制できるようにするために、プロパティ user_type(private|company) を使用する必要があるユーザー エンティティの VATID のようなもの。この場合、PrePersist/PreUpdate validationを実行します。

于 2014-06-30T07:53:31.693 に答える