MVC について学び始めて以来、コントローラーでフォーム データを常に検証してきました。これは、CodeIgniters コードをざっと読んでいるときに身につけた習慣ですが、特定の操作を実行する方法が最善ではないことを学びました。終わり。
すべてのフォーム データをドメイン オブジェクトで検証する必要がありますか? もしそうなら、セッターでそのように行うべきです
public function setFirstName($firstName) {
// Check if the field was required
if(!$firstName) {
throw new InvalidArgumentException('The "First name" field is required');
}
// Check the length of the data
// Check the format
// Etc etc
}
また、たとえば、基本的なユーザー登録を処理している場合、User
クラスには$confirmPassword
プロパティがないため、実行しません
$user->setConfirmPassword($confirmPassword);
.
入力した 2 つのパスワードが等しいかどうかを確認する 1 つの方法は、 を設定して次の$password
ようにすることです。
$user->setPassword($password);
if(!$user->matchPassword($confirmPassword)) {
throw new PasswordsNotEqualException('Some message');
}
これはサービスレイヤーで行われると思いますか?
正しい方向に私を助けるためのアドバイスは素晴らしいでしょう。ありがとう。