1

ドメイン レイヤーとマッパー レイヤーを使用して PHP アプリケーションを構築しており、ユーザー入力を検証する場所を決定する必要があります。ほとんどの検証は Zend_Form インスタンスに対して行われます。(Matthew Wierer O'Phinney のチュートリアルによると、モデルに属するものとして Zend_Form の検証の側面を見ています)。

2つのオプションは次のとおりです。

  1. ユーザー入力時のドメイン層。たとえばnew user($_POST)、 __construct() メソッドは、入力フォームに対して $_POST を検証します。
  2. データを永続化する際のマッパーレイヤー。たとえば、$userMapper->insert($user)メソッドは入力フォームに対して $user を検証します

私の感覚では、検証ルールはビジネス ルールによって駆動されることが多いため、検証はドメイン レイヤーで処理する必要があります。そうは言っても、何かが欠けている可能性があります。これは大きな設計上の決定であるため、皆様のご意見をお待ちしております。

モデルの検証に加えて、バックエンドにデータベースの制約があり、ユーザー エクスペリエンスを向上させるために JS の検証を計画しています!

ご意見ありがとうございます!!!

4

1 に答える 1

1

ドメイン モデルで何らかの検証を行うことについて、特に問題はないと思いますが、自分自身に不利益をもたらしている可能性があります。
より多くのドメイン モデルを構築しなければならなくなると、同じ検証コードを何度も書き直すことになるでしょう。検証を提供するサービス モデルを持つことは、あなたの利益になるかもしれません。
そうすれば、ドメイン モデルを追加するときにデータを検証サービスに渡すだけで、すべてのモデルのバリデーターを 1 か所で追加および削除できます。また、ZF が既に提供しているバリデーターのいくつかで十分であることに気付くかもしれません。

私の意見です...幸運を祈ります

于 2012-06-07T09:58:25.900 に答える