¸ñÂ÷
Zend_Validate ÄÄÆÛ³ÍÆ®´Â, ÀϹÝÀûÀ¸·Î ÇÊ¿äÇÑ Validator¸¦ Á¦°øÇÕ´Ï´Ù. ½ÉÇÃÇÑ Validator Chains ±â´Éµµ °¡Áö°í ÀÖ¾î ÇϳªÀÇ µ¥ÀÌÅÍ¿¡ ´ëÇØ¼ º¹¼öÀÇ Validator¸¦ ÁöÁ¤ÇÑ ¼ø¼¿¡ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Validator´Â, ÀÔ·ÂÀÌ ¾î¶°ÇÑ ¿ä°ÇÀ» ä¿ö ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇØ °á°ú¸¦ boolean °ªÀ¸·Î µ¹·ÁÁÝ´Ï´Ù.À̰ÍÀº, ÀÔ·ÂÀÌ ¿ä°ÇÀ» ä¿ö ÀÖ´ÂÁö ¾î¶²Áö¸¦ ³ªÅ¸³À´Ï´Ù. ÀÔ·ÂÀÌ ¿ä°ÇÀ» ä¿ìÁö ¾Ê¾Ò´ø °æ¿ì, Validator´Â ±× ÀÔ·ÂÀÌ ¾î¶»°Ô ¿ä°ÇÀ» ä¿ìÁö ¾Ê¾Ò´ø °ÍÀϱ ´ëÇÑ Ãß°¡ Á¤º¸µµ Á¦°øÇÕ´Ï´Ù.
¿¹¸¦ µé¾î, ¾î´À À¥ ¾îÇø®ÄÉÀ̼ǿ¡¼´Â ¡¸À¯Àú¸íÀº 6 ¹®ÀڷκÎÅÍ 12 ¹®ÀÚ, ÇÑÆí ¿µ¼ýÀÚ¸¸ÀÌ »ç¿ë °¡´É¡¹ ±×·¸´Ù°í ÇÏ´Â ¿ä°ÇÀÌ ÀÖ´Â °ÍÀ¸·Î ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ ÀÔ·ÂÀÌ ±×°ÍÀ» ä¿ö ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇϱâ À§Çؼ Validator¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼±ÅÃÇÑ À¯Àú¸íÀÌ ¾î´ÀÂÊÀ̵ç Çϳª ȤÀº ¾çÂÊ ¸ðµÎÀÇ ¿ä°ÇÀ» ä¿ìÁö ¾ÊÀº °æ¿ì¿¡, ¾î´À ÂÊÀÇ Á¶°Ç¿¡ ¹ÝÇϰí ÀÖ¾ú´ÂÁö¸¦ ¾Ë ¼ö ÀÖÀ¸¹Ç·Î Æí¸®ÇÕ´Ï´Ù.
¿©±â¼ »ý°¢ÇÑ Validator¿¡ ´ëÇÑ Á¤ÀǸ¦ ±âÃÊ·Î ÇØ¼
Zend_Validate_Interface
ÇÏÁö¸¸ ÀÛ¼ºµÇ¾ú½À´Ï´Ù.À̰ÍÀº,
isValid()
¹× getMessages()
ÀÇ µÎ ¸Þ¼Òµå¸¦ Á¤ÀÇÇÏ´Â °ÍÀÔ´Ï´Ù.
isValid()
¸Þ¼Òµå´Â ÁöÁ¤ÇÑ °ª¿¡ ´ëÇÑ °ËÁõÀ» ½Ç½ÃÇÕ´Ï´Ù.
°ªÀÌ °ËÁõ Á¶°ÇÀ» ä¿ö ÀÖ´Â °æ¿ì¿¡°Ô¸¸ true
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
isValid()
ÇÏÁö¸¸ false
(À»)¸¦ µ¹·ÁÁÖ¾úÀ» °æ¿ì,
getMessages()
ÇÏÁö¸¸ ¸Þ¼¼ÁöÀÇ ¹è¿À» Á¦°øÇÕ´Ï´Ù.
¿©±â¿¡´Â °ËÁõÀÌ ½ÇÆÐÇÑ ÀÌÀ¯°¡ Æ÷ÇԵ˴ϴÙ.
¹è¿ÀÇ Å°´Â, °ËÁõ¿¡ ½ÇÆÐÇÑ ¿øÀÎÀ» ³ªÅ¸³»´Â ªÀº ¹®ÀÚ¿ÀÌ µË´Ï´Ù.
¹è¿ÀÇ °ªÀº, °Å±â¿¡ ´ëÀÀÇÏ´Â Àΰ£ÀÌ Àбâ À§ÇÑ ¸Þ¼¼ÁöÀÔ´Ï´Ù.
Ű¿Í °ªÀº Ŭ·¡½º¿¡ ÀÇÁ¸ÇÕ´Ï´Ù.
°³°³ÀÇ validation class³»¿¡¼,
°ËÁõ ½ÇÆÐ½ÃÀÇ ¸Þ¼¼Áö¿Í ±×°ÍÀ» ³ªÅ¸³»´Â ÀÏÀÇÀΠ۸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù.
°³°³ÀÇ Å¬·¡½º¿¡¼´Â, °ËÁõ ½ÇÆÐÀÇ ¿øÀÎÀ» ³ªÅ¸³»´Â Á¤¼öµµ ÁغñÇØ ÀÖ½À´Ï´Ù.
![]() |
ÁÖÀÇ |
---|---|
|
ÀÌÇÏÀÇ ¿¹¿¡¼´Â, ÀüÀÚ¸ÞÀÏ ÁÖ¼ÒÀÇ °ËÁõ ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
<?php
require_once 'Zend/Validate/EmailAddress.php';
$validator = new Zend_Validate_EmailAddress();
if ($validator->isValid($email)) {
// email (Àº)´Â Ÿ´çÇÑ Çü½ÄÀÔ´Ï´Ù
} else {
// email (Àº)´Â ¹«È¿ÀÎ Çü½ÄÀÔ´Ï´Ù.ÀÌÀ¯¸¦ Ç¥½ÃÇÕ´Ï´Ù
foreach ($validator->getMessages() as $messageId => $message) {
echo "¹Ù¸®µ¥À̼ǿ¡¶ó '$messageId': $messagen";
}
}
Validator Ŭ·¡½ºÀÇ setMessage()
¸Þ¼Òµå¸¦ »ç¿ëÇϸé,
°ËÁõ¿¡ ½ÇÆÐÇßÀ» °æ¿ì¿¡ getMessages()
ÇÏÁö¸¸ µ¹·ÁÁÖ´Â ¸Þ¼¼ÁöÀÇ ¼½ÄÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÃÖÃÊÀÇ Àμö¿¡´Â ¿¡·¯ ¸Þ¼¼Áö¸¦ ¹®ÀÚ¿·Î ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ ¸Þ¼¼Áö¿¡ ƯÁ¤ÀÇ ÅäÅ«À» Æ÷ÇÔÇϸé,
Validator°¡ ±×°ÍÀ» ½ÇÁ¦ÀÇ °ª¿¡ ¿Å°Ü³õ½À´Ï´Ù.
ÅäÅ« %value%
(Àº)´Â ¸ðµç Validator°¡ ¼Æ÷Æ®Çϰí ÀÖ¾î,
À̰ÍÀº isValid()
¿¡ °Ç³×ÁØ °ªÀ¸·Î ¿Å°ÜÁý´Ï´Ù.
±× ¿Ü, validation class¿¡ ÀÇÇØ¼ ¿©·¯°¡Áö ÅäÅ«À» ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î,Zend_Validate_LessThan
±×·³
%max%
±×·¸´Ù°í ÇÏ´Â ÅäÅ«À» ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.
getMessageVariables()
¸Þ¼Òµå´Â,
±× Validator°¡ ¼Æ÷Æ®ÇÏ´Â º¯¼ö ÅäÅ«ÀÇ ¹è¿À» µ¹·ÁÁÝ´Ï´Ù.
¿É¼ÇÀÇ 2 ¹øÂ°ÀÇ Àμö´Â, »ç¿ëÇÏ´Â °ËÁõ ¿¡·¯ ¸Þ¼¼Áö ÅÛÇø´À» ³ªÅ¸³»´Â ¹®ÀÚ¿ÀÔ´Ï´Ù. À̰ÍÀº validation class·Î º¹¼öÀÇ ¿øÀÎÀ» Á¤ÀÇÇϰí ÀÖ´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù. ÀÌ Àμö¸¦ »ý·« Çϸé, validation class³»¿¡¼ ÃÖÃÊ·Î ¼±¾ðµÇ°í ÀÖ´Â ¸Þ¼¼Áö ÅÛÇø´À» »ç¿ëÇÕ´Ï´Ù. ¸¹Àº validation class´Â ¿¡·¯ ¸Þ¼¼Áö¸¦ Çϳª ¹Û¿¡ °¡Áö°í ÀÖÁö ¾Ê±â ¶§¹®¿¡, ±»ÀÌ ¾î´À ¸Þ¼¼Áö¸¦ »ç¿ëÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.
<?php
require_once 'Zend/Validate/StringLength.php';
$validator = new Zend_Validate_StringLength(8);
$validator->setMessage(
'¹®ÀÚ¿ '%value%' (Àº)´Â ³Ê¹« ª½À´Ï´Ù.ÃÖÀú %min% ¹®ÀÚ ÀÌ»ó ÇÊ¿äÇÕ´Ï´Ù',
Zend_Validate_StringLength::TOO_SHORT);
if (!$validator->isValid('word')) {
$messages = $validator->getMessages();
echo current($messages);
// Ãâ·ÂÀº "¹®ÀÚ¿ 'word' (Àº)´Â ³Ê¹« ª½À´Ï´Ù.ÃÖÀú 8 ¹®ÀÚ ÀÌ»ó ÇÊ¿äÇÕ´Ï´Ù" µË´Ï´Ù
}
º¹¼öÀÇ ¸Þ¼¼Áö¸¦ setMessages()
¸Þ¼Òµå·Î ¼³Á¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
±× °æ¿ìÀÇ Àμö´Â, Ű/¸Þ¼¼Áö ÀÇ Æä¾îÀÇ ¹è¿ÀÔ´Ï´Ù.
<?php
require_once 'Zend/Validate/StringLength.php';
$validator = new Zend_Validate_StringLength(8, 12);
$validator->setMessages( array(
Zend_Validate_StringLength::TOO_SHORT => '¹®ÀÚ¿ '%value%' (Àº)´Â ³Ê¹« ª½À´Ï´Ù',
Zend_Validate_StringLength::TOO_LONG => '¹®ÀÚ¿ '%value%' (Àº)´Â ³Ê¹« ±é´Ï´Ù'
));
º¸´Ù À¯¿¬ÇÑ °ËÁõ ½ÇÆÐ º¸°í¸¦ ÇÏ°í ½ÍÀº °æ¿ì¸¦ À§Çؼ,
validation class°¡ ¼Æ÷Æ®ÇÏ´Â ¸Þ¼¼Áö ÅäÅ«°ú °°Àº À̸§ÀÇ ÇÁ·ÓÆÛƼ¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
¾î´À Validator¿¡¼µµ Ç×»ó »ç¿ë °¡´ÉÇÑ ÇÁ·ÓÆÛƼ´Â value
ÀÔ´Ï´Ù.
À̰ÍÀº,isValid()
ÀÇ Àμö·Î¼ °Ç³×ÁØ °ªÀ» µ¹·ÁÁÝ´Ï´Ù.
±× ¿ÜÀÇ ÇÁ·ÓÆÛƼ¿¡ ´ëÇØ¼´Â, validation class¿¡ µû¶ó¼ ´Ù¸¨´Ï´Ù.
<?php
require_once 'Zend/Validate/StringLength.php';
$validator = new Zend_Validate_StringLength(8, 12);
if (!validator->isValid('word')) {
echo 'À̰ÍÀº, ´Ü¾î·Î¼ ¹«È¿ÀÔ´Ï´Ù: '
. $validator->value
. '.±× ±æÀ̰¡ '
. $validator->min
. ' (À¸)·ÎºÎÅÍ '
. $validator->max
. " ±îÁöÀÇ »çÀ̰¡ ¾Æ´Õ´Ï´Ùn";
}
ÁöÁ¤ÇÑ validation class¸¦ Àоîµé¿© ±× ÀνºÅϽº¸¦ ÀÛ¼ºÇÑ´Ù´Â °ÍÀÌ ±ÍÂúÀ¸¸é,
¶Ç ÇϳªÀÇ ¹æ¹ýÀ¸·Î¼ Á¤Àû ¸Þ¼Òµå Zend_Validate::is()
(À»)¸¦ ½ÇÇàÇÏ´Â ¹æ¹ýµµ ÀÖ½À´Ï´Ù.ÀÌ ¸Þ¼ÒµåÀÇ ÃÖÃÊÀÇ Àμö¿¡´Â,
isValid()
¸Þ¼Òµå¿¡ °Ç³×ÁÖ´Â ÀÔ·ÂÄ¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
µÎ¹øÂ°ÀÇ Àμö´Â ¹®ÀÚ¿·Î, validation classÀÇ º£À̽º ³×ÀÓ
(Zend_Validate
À̸§ °ø°£¿¡ ÀÖ¾î¼ÀÇ »ó´ëÀûÀÎ À̸§) (À»)¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
is()
¸Þ¼Òµå´Â ÀÚµ¿ÀûÀ¸·Î Ŭ·¡½º¸¦ Àоîµé¿© ±× ÀνºÅϽº¸¦ ÀÛ¼ºÇØ,
ÁöÁ¤ÇÑ ÀԷ¿¡ ´ëÇØ¼ isValid()
¸Þ¼Òµå¸¦ Àû¿ëÇÕ´Ï´Ù.
<?php
require_once 'Zend/Validate.php';
if (Zend_Validate::is($email, 'EmailAddress')) {
// email (Àº)´Â Ÿ´çÇÑ Çü½ÄÀÔ´Ï´Ù
}
Validator Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ ¿¡ ¿É¼ÇÀ» ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì´Â, ±×°ÍÀ» ¹è¿·Î °Ç³×ÁÙ ¼ö ÀÖ½À´Ï´Ù.
<?php
require_once 'Zend/Validate.php';
if (Zend_Validate::is($value, 'Between', array(1, 12))) {
// $value ÇÏ 1 (À¸)·ÎºÎÅÍ 12 ±îÁöÀÇ »çÀÌÀÔ´Ï´Ù
}
is()
¸Þ¼Òµå´Â boolean °ªÀ» µ¹·ÁÁÝ´Ï´Ù.À̰ÍÀº
isValid()
¸Þ¼Òµå¿Í °°½À´Ï´Ù.Á¤Àû ¸Þ¼Òµå
is()
(À»)¸¦ »ç¿ëÇßÀ» °æ¿ì´Â, °ËÁõ ½ÇÆÐ ¸Þ¼¼ÁöÀÇ ³»¿ëÀº »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
ÀÌ Á¤ÀûÀÎ »ç¿ë¹ýÀº, ±× ÀÚ¸®¿¡¼ °ËÁõ¿¡´Â Æí¸®ÇÕ´Ï´Ù.
´ÜÁö, º¹¼öÀÇ ÀԷ¿¡ ´ëÇØ¼ Validator¸¦ Àû¿ëÇÑ´Ù¸é,
ÃÖÃÊÀÇ ¿¹ÀÇ ¹æ½Ä, Áï Validator ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ
±× isValid()
¸Þ¼Òµå¸¦ ÄÝ ÇÏ´Â ¹æ½Ä ÂÊÀÌ º¸´Ù È¿À²ÀûÀÔ´Ï´Ù.
¶Ç,Zend_Filter_Input
Ŭ·¡½º¿¡¼µµ, ƯÁ¤ÀÇ ÀÔ·Â µ¥ÀÌÅͼ¼Æ®¸¦ ó¸®ÇÒ ¶§¿¡
º¹¼öÀÇ ÇÊÅͳª Validator¸¦ Çʿ信 µû¶ó¼ ½ÇÇà½ÃŰ´Â ±â´Éµµ Á¦°øÇϰí ÀÖ½À´Ï´Ù.
ÀÚ¼¼ÇÑ °ÍÀº Ç×14.5. ¡¸Zend_Filter_Input¡¹ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.