6
モデルがデータを検証している場合、不正な入力に対して例外をスローすべきではありませんか?
このSOの質問を読むと、ユーザー入力を検証するために例外をスローすることは不快に思われるようです。 しかし、誰がこのデータを検証する必要がありますか?私のアプリケーションでは、すべての検証はビジネスレイヤーで行われます。これは、クラス自体だけが、各プロパティの有効な値を実際に認識しているためです。プロパティを検証するためのルールをコントローラーにコピーすると、検証ルールが変更される可能性があり、変更を行う場所が2つあります。 ビジネス層で検証を行う必要があるという私の前提は間違っていますか? 私がやること したがって、私のコードは通常、次のようになります。 <?php class Person { private $name; private $age; public function setName($n) { $n = trim($n); if (mb_strlen($n) == 0) { throw new ValidationException("Name cannot be empty"); } $this->name = $n; } public function setAge($a) { if (!is_int($a)) { if (!ctype_digit(trim($a))) { throw new ValidationException("Age $a …