模型中的验证逻辑

时间:2016-01-14 20:33:00

标签: php

我正在讨论将验证逻辑放入我的模型中(setter函数)。这是我应该使用单独的对象吗?以下是我的想法。

class Person {
     private $name, $setErrors = [];

     public function setName($name){
          if(strlen($name) > 0){
              $this->name = $name;
               return true;
          }
          $this->setErrors[] = "Name must be at least one character";
          return false;
     }
     public function getErrors(){
          return $this->setErrors;
     }
}

$person = new Person();
$person->setName("Bob");
if (count($person->getErrors()) > 0){
     /* Return Errors To View */
}

1 个答案:

答案 0 :(得分:0)

分离问题是最佳做法。

每个班级都应该承担一项责任。

此外,如果您将验证逻辑移动到一个单独的类中,它可以在多个字段上重复使用,更不用说更容易进行单元测试了。

class NameValidator
{
    public function isValid($string) {
         // Logic
    }
}