İşte doğrulama kodu ile başa çıkmak için benim stratejidir. Ben 'doğrulama kütüphane' ile varsayalım, sadece bir e-posta bir e-posta olduğundan emin olun olanlar demek, telefon numaraları sayısal, ve doğada iş kuralları değildir.
Fikir bir functor olarak her iş kuralı kodu var - bu PHP ise, sadece işlevini tanımlamak için bir dize kullanarak alabilirsiniz; Diğer diller için, size strateji desen kullanmak zorunda kalabilirsiniz. (PHP için gerekli değildir) functor için bir arabirim tanımlamak ve bir dizi içine dökümü.
Bir tampon başarı, hata ve bir hata kodu dönecektir dizi ile çalıştırın. Sonunda, hata tampon incelemek ve başarısız olduğu doğrulama belirler. Görünümünü özelleştirmek için kullanın.
İşte bir örnek
$checkUniqueUserName = new CheckUniqueUserName();
$checkEmailNotUsed = new EmailNotUsed();
$validator = array();
$validator[$checkUniqueUserName->name()] = $checkUniqueUserName;
$validator[$checkEmailNotUsed->name()] = $checkEmailNotUsed;
$results = array();
foreach ($validator as $v)
{
$result[$v->getValidatorName()] = $v->execute($userInfo);
}
class CheckUniqueUserName()
{
public function execute($userInfo)
{
// SQL blah blah blah
if ($bNameUnique)
return array ('success' => 1)
else
return array ('success' => 0, 'error' => "$name is in used", 'error_code' => 'duplicate_name);
}
}
Sonunda, bir sonuç dizi, bir doğrulama işlemi ile dolu her olacak ve başarısız olduğu bilmek ve hangi değil. Bu da başarısız alanları vurgulayarak gibi, daha fazla işlem için istemci tarafında geçirilebilir. Error_code bir uygulanmış uygun hata mesajı ve biçimlendirme aramak için kullanılır.
Ben olsa çağrı destek kastım gerçekten emin değilim.