도메인 엔티티의 유효성을 검사 할 때 값이 설정되면 유효성을 검사하는 것이 더 좋습니까? 아니면 나중에 (예 : Symfony2와 같은) 유효성 검사기를 사용하여 값을 한 번에 확인하는 것이 더 좋습니까? 예를 들어각 속성을 설정할 때 도메인 엔터티를 확인하거나 나중에 모두 확인하십시오.
:
public function setEmail($email)
{
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
throw new EntityException('The specified email address ' . $email . ' is invalid.');
}
$this->_email = $email;
return $this;
}
옵션 2. 검증 나중에 설정되는 동안
옵션 1. 검증 ...
$user = new UserEntity();
$user->setEmail('[email protected]');
$validator = new Validator();
$validator->validate($user);
옵션 3. 두 위의 (비록 약간의 중복 및 오버 헤드 가치가없는 것).
나는 첫 번째 것이 더 밀폐 된 엔티티를 만들지 만 두 번째 것은 더 사용자 친화적 인 오류 처리를한다는 것을 알고있다.
또한 두 번째 옵션은 설정자를 조정할 필요가 없으므로 구성 및 유지 관리가 더 쉬워 보이며 유효성 검사 논리를 단일 클래스로 중앙 집중화 할 수 있습니다. 그 귀결은 무엇
...
그래서 기본적으로,이 옵션이 같은 소리가 나는 것을 잊어 버리면 내가하고 싶은,하지만 (예를 들어 기업의 밀폐 다움을 희생 같은 느낌 것입니다 유효성 검사기를 통해 엔티티를 실행), 어리 석을 수 있습니다.
을, 당신은 응용 프로그램에서 잘못된 값을하는 것에 대한 우려 데이터베이스에 유효하지 않은 데이터가있는 것에 대해서만 관심이 있습니까? –
음 ... 둘 다. 하지만 응용 프로그램은 데이터베이스에서 유지되는 엔티티를 주로 사용하므로 DB에서 데이터를 완벽하게 유지하는 것이 더 걱정되므로 응용 프로그램에 완벽한 데이터가 제공됩니다. – johnnietheblack
아, 그리고 btw, +1 정규 표현식 대신에'filter_var()'를 사용하여 전자 메일 주소 (: –