39.3. Validator Chains

ÇϳªÀÇ °ª¿¡ ´ëÇØ¼­, º¹¼öÀÇ Validator¸¦ ÁöÁ¤ÇÑ ¼ø¼­¿¡ Àû¿ëÇØ¾ß ÇÏ´Â °ÍÀÌ ÀÚÁÖ ÀÖ½À´Ï´Ù. ÀÌÇÏÀÇ ÄÚµå´Â, µµÀÔ ±×¸®°í ¼³¸íÇÑ ¿¹¸¦ ÇØ°áÇϱâ À§ÇÑ ¹æ¹ýÀ» ³ªÅ¸³»´Â °ÍÀÔ´Ï´Ù. À¯Àú¸íÀÌ 6 ¹®ÀڷκÎÅÍ 12 ¹®ÀÚ±îÁöÀÇ ¿µ¼ýÀÚÀÏÁö¸¦ °ËÁõÇÕ´Ï´Ù.


<?php
// Validator Chains ±â´ÉÀ» »ç¿ëÇÕ´Ï´Ù
require_once 'Zend/Validate.php';

// ÀÌ ¿¹·Î »ç¿ëÇÏ´Â ValidatorÀÔ´Ï´Ù
require_once 'Zend/Validate/StringLength.php';
require_once 
'Zend/Validate/Alnum.php';

// Validator ChainsÀ» ÀÛ¼ºÇØ, °Å±â¿¡ Validator¸¦ Ãß°¡ÇÕ´Ï´Ù
$validatorChain = new Zend_Validate();
$validatorChain->addValidator(new Zend_Validate_StringLength(612))
               ->
addValidator(new Zend_Validate_Alnum());

// À¯Àú¸íÀ» °ËÁõÇÕ´Ï´Ù
if ($validatorChain->isValid($username)) {
    
// À¯Àú¸íÀº °ËÁõÀ» Åë°úÇß½À´Ï´Ù
} else {
    
// À¯Àú¸íÀÇ °ËÁõ¿¡ ½ÇÆÐÇß½À´Ï´Ù.ÀÌÀ¯¸¦ Ç¥½ÃÇÕ´Ï´Ù
    
foreach ($validatorChain->getMessages() as $message) {
        echo 
"$messagen";
    }
}

Validator´Â,Zend_Validate ¿¡ Ãß°¡ÇÑ ¼ø¼­¿¡ Àû¿ëµË´Ï´Ù. À§ÀÇ ¿¹¿¡¼­´Â, ¿ì¼± À¯Àú¸íÀÇ ±æÀ̰¡ 6 ¹®ÀڷκÎÅÍ 12 ¹®ÀÚ±îÁöÀÇ »çÀÌÀÏÁö¸¦ Á¶»çÇÕ´Ï´Ù. ±× ´ÙÀ½¿¡, ¿µ¼ýÀÚ»ÓÀÏÁö¸¸À» Á¶»çÇÕ´Ï´Ù. µÎ¹øÂ°ÀÇ °ËÁõÀÎ ¡¸¿µ¼ýÀÚÀÎÁö ¾î¶²Áö¡¹´Â, ÃÖÃÊÀÇ °ËÁõÀÌ´Ù ¡¸6 ¹®ÀڷκÎÅÍ 12 ¹®ÀÚ±îÁö¡¹°¡ ¼º°øÇß´ÂÁö¿¡ °ü°è¾øÀÌ ÇàÇØÁý´Ï´Ù. Áï, ¸¸¾à ¾çÂÊ ¸ðµÎÀÇ °ËÁõ¿¡ ½ÇÆÐÇßÀ» °æ¿ì´Â,getMessages() (Àº)´Â ¾çÂÊ ¸ðµÎÀÇ °ËÁõ ½ÇÆÐ ¸Þ¼¼Áö¸¦ µ¹·ÁÁÖ°Ô µË´Ï´Ù.

°ËÁõÀÌ ½ÇÆÐÇÑ ½ÃÁ¡¿¡¼­, ±× ÈÄÀÇ °ËÁõÀ» ½Ç½ÃÇÏÁö ¾Ê°í ÃÖÀÎÀ» ºüÁ® ³ª°¡°í ½ÍÀº °Íµµ ÀÖ°ÚÁö¿ä. Zend_Validate (Àº)´Â ±×·¯ÇÑ »ç¿ë¹ýµµ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. ±×·¯±â À§Çؼ­´Â,addValidator() ¸Þ¼ÒµåÀÇ µÎ¹øÂ°ÀÇ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù. $breakChainOnFailure (À»)¸¦ true (À¸)·Î ¼³Á¤Çϸé, ±× Validator°¡ ½ÇÆÐÇÑ ½ÃÁ¡¿¡¼­ ÃÖÀÎÀ» ºüÁ® ³ª°©´Ï´Ù. À̰Ϳ¡ ÀÇÇØ, ÈÄ¿¡ °è¼Ó µÇ´Â ºÒÇÊ¿äÇÑ °ËÁõÀ̳ª ºÎÀûÀýÇÑ °ËÁõÀ» ½Ç½ÃÇÏÁö ¾Ê°í ³¡³³´Ï´Ù. À§ÀÇ ¿¹¸¦ ´ÙÀ½°ú °°ÀÌ °íÃÄ ¾²¸é, ±æÀÌÀÇ °ËÁõ¿¡ ½ÇÆÐÇßÀ» °æ¿ì´Â ¿µ¼ýÀÚÀÇ °ËÁõÀ» ½Ç½ÃÇÏÁö ¾Ê°Ô µË´Ï´Ù.


<?php
$validatorChain
->addValidator(new Zend_Validate_StringLength(612), true)
        ->
addValidator(new Zend_Validate_Alnum());

Zend_Validate_Interface (À»)¸¦ ½ÇÀåÇÑ ¿ÀºêÁ§Æ®¶ó¸é ¹¹µçÁö, Validator ChainsÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.