Zend_Filter_Input (Àº)´Â ¼±¾ðÇüÀÇ ÀÎÅÍÆäÀ̽ºÀÔ´Ï´Ù. º¹¼öÀÇ ÇÊÅͳª Validator¸¦ °ü·ÃÁö¾î ±×°ÍÀ» µ¥ÀÌÅÍÀÇ ÁýÇÕ¿¡ Àû¿ëÇØ, ±× ÇÊÅͳª Validator·Î ó¸®ÇÑ ÈÄÀÇ °á°ú¸¦ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. µðÆúÆ®¿¡¼´Â,HTML Ãâ·Â¿¡ ÀûÀýÇÑ Çü½Ä¿¡ À̽ºÄÉÀÌÇÁ µÈ °á°ú¸¦ µ¹·ÁÁÝ´Ï´Ù.
ÀÌ Å¬·¡½º´Â, ¿ÜºÎ·ÎºÎÅÍÀÇ µ¥ÀÌÅ͸¦ À§ÇÑ ¡¸¿ì¸®¡¹¶ó°í »ý°¢Çϸé ÁÁÀ» °ÍÀÔ´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀÇ ¿ÜºÎ·ÎºÎÅÍ °Ç³×¹ÞÀº µ¥ÀÌÅͶõ, ¿¹¸¦ µé¾î HTTP ¸®Äù½ºÆ®ÀÇ ÆÄ¶ó¹ÌÅͳª HTTP Çì´õ, À¥ ¼ºñ½º, µ¥ÀÌŸº£À̽º·ÎºÎÅÍ ÀоîµéÀÎ µ¥ÀÌÅͳª ´Ù¸¥ ÆÄÀϷκÎÅÍ ÀоîµéÀÎ µ¥ÀÌÅ͵îÀÇ ÀÏÀÔ´Ï´Ù. ÀÌ·¯ÇÑ µ¥ÀÌÅÍ´Â ÀÏ´Ü ¿ì¸®¾È¿¡ °¤Èü´Ï´Ù. ±× ÀÌÈÄ, ¾îÇø®ÄÉÀ̼ÇÀ¸·ÎºÎÅÍ ÀÌ·¯ÇÑ µ¥ÀÌÅÍ¿¡ ¾×¼¼½º ÇÏ·Á¸é , °£¼ö¿¡ ´ëÇØ¼ ¡¸±× µ¥ÀÌÅͰ¡ ¹«¾ùÀ¸·Î ÀÖ°í, ¹«½¼ ¸ñÀûÀ¸·Î »ç¿ëÇÏ´Â °ÍÀΰ¡¡¹ (À»)¸¦ ¼³¸íÇØ¾ß ÇÏ°Ô µË´Ï´Ù.°£¼ö´Â ±× ¼³¸íÀÇ ³»¿ë¿¡ µû¶ó µ¥ÀÌÅÍÀÇ Å¸´ç¼ºÀ» °ËÁõÇÕ´Ï´Ù. »óȲ¿¡ µû¸£°í, ÀûÀýÈ÷ µ¥ÀÌÅÍÀÇ À̽ºÄÉÀÌÇÁµµ ½Ç½ÃÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Ã³¸®¸¦ ³¡³½ µ¥ÀÌÅÍ ¹Û¿¡, ¿ì¸®Áß¿¡¼ ¹Û¿¡ ³ª¿Ã ¼ö ¾ø½À´Ï´Ù. ½ÉÇÃÇÏ°í Æí¸®ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÏ´Â °ÍÀ¸·Î, °³¹ßÀÚ°¡ º¸´Ù ÁÁÀºÇÁ·Î±×·¡¹Ö ½À°üÀ» ¸ö¿¡ ÀÍÈú ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù. ¶Ç, µ¥ÀÌÅÍÀÇ ÀÌ¿ë¹ý¿¡ ´ëÇØ Ç×»ó Á¶½ÉÇÒ ¼ö ÀÖµµ·Ï(µíÀÌ) ÇÕ´Ï´Ù.
ÇÊÅÍ (Àº)´Â ÀÔ·ÂÄ¡¸¦ º¯È¯ÇÕ´Ï´Ù.¿¹¸¦ µé¾î, °ª¾ÈÀÇ Æ¯Á¤ÀÇ ¹®ÀÚ¸¦ »èÁ¦Çϰųª º¯°æÇϰųª ÇÕ´Ï´Ù.ÇÊÅÍÀÇ ¸ñÀûÀº, ÀÔ·ÂÄ¡¸¦ "Á¤±ÔÈ" ÇØ ±â´ë ±×´ë·ÎÀÇ ¼½ÄÀ¸·Î ÇÏ´Â °ÍÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, ¼öÄ¡ Çü½ÄÀÇ ¹®ÀÚ¿À» ÇÊ¿ä·Î ÇÏ´Â Àå¸é¿¡¼ ÀÔ·ÂÄ¡°¡ "abc123" (À̾ú)¿´´Ù°í ÇսôÙ.ÀÌ °æ¿ì´Â, ¹®ÀÚ¿À» "123" (À¸)·Î º¯È¯ÇÏ´Â °ÍÀÌ Å¸´çÇϰÚÁö¿ä.
Validator (Àº)´Â ÀÔ·ÂÄ¡°¡ ƯÁ¤ÀÇ Á¶°ÇÀ» ä¿ö ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇØ ±× °á°ú¸¦ µ¹·ÁÁÝ´Ï´Ù.Á¶°ÇÀ» ä¿ìÁö ¾Ê¾Æµµ, °ªÀÚü¿¡´Â ¼Õº¸Áö ¾Ê½À´Ï´Ù.¿¹¸¦ µé¾î, ¸ÞÀÏ ÁÖ¼Ò Çü½ÄÀÇ ¹®ÀÚ¿ÀÌ ÇÊ¿äÇÑ Àå¸é¿¡¼ ÀÔ·ÂÄ¡°¡ "abc123" (À̾ú)¿´´Ù°í ÇսôÙ.ÀÌ °æ¿ì´Â, ÀÔ·ÂÄ¡´Â Ÿ´çÇÑ °ÍÀº ¾Æ´Ï¶ó°í ÆÇ´ÜµÇ°ÚÁö¿ä.
¿¡½ºÄÉÀÌÆÄ (Àº)´Â, ƯÁ¤ÀÇ ¹®ÀÚ°¡ Ư¼öÇÑ ±â´ÉÀ» ÇÏÁö ¾Ê°Ô Çϱâ À§Çؼ ÀÔ·ÂÄ¡¸¦ º¯È¯ÇÏ´Â °ÍÀÔ´Ï´Ù. »óȲ¿¡ µû¶ó¼´Â, ƯÁ¤ÀÇ ¹®ÀÚ°¡ Ư¼öÇÑ Àǹ̸¦ °¡Áö´Â ÀÏÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î,'<' ¹× '>' ÇÏ HTML ű×ÀÇ ´Ü¶ô ¹®ÀÚ¸¦ ³ªÅ¸³À´Ï´Ù. ¸¸¾à ÀÌ·¯ÇÑ ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿À» HTML (À¸)·Î¼ Ãâ·ÂÇÏ·Á°í Çϸé, ÀÌ·¯ÇÑ ¹®ÀÚ¸¦ Æ÷ÇÔÇÑ ºÎºÐÀÌ HTML ÀÇ Ãâ·ÂÀ̳ª ±â´É¿¡ ÇϵîÀÇ ¿µÇâÀ» ÁÖ¾î ¹ö¸³´Ï´Ù. ÀÌ·¯ÇÑ ¹®ÀÚ¸¦ À̽ºÄÉÀÌÇÁ ÇÏ´Â °ÍÀ¸·Î Ư¼öÇÑ Àǹ̸¦ Á¦°ÅÇØ, Åë»óÀÇ ¹®Àڷμ Ãâ·ÂÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
Zend_Filter_Input (Àº)´Â, ÀÌÇÏÀÇ ¼ø¼·Î »ç¿ëÇÕ´Ï´Ù.
ÇÊÅÍ ·ê ¹× °ËÁõ ·êÀ» ¼±¾ðÇÑ´Ù
ÇÊÅÍ ¹× ValidatorÀÇ Ã³¸® ÀåÄ¡¸¦ ÀÛ¼ºÇÑ´Ù
ÀÔ·Â µ¥ÀÌÅ͸¦ °Ç³×ÁØ´Ù
°ËÁõ ³¡³ Çʵ峪 ±× ¿ÜÀÇ °á°ú Á¤º¸¸¦ ÃëµæÇÑ´Ù
ÀÌÇÏÀÇ ¼½¼Ç¿¡¼´Â, ÀÌ Å¬·¡½ºÀÇ »ç¿ë¹ý¿¡ ´ëÇÏ°í ¼ø¼¸¦ ÂÑ¾Æ ¼³¸íÇØ °¥ °ÍÀÔ´Ï´Ù.
Zend_Filter_Input ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇϱâ Àü¿¡, ÇÊÅÍ ·ê°ú °ËÁõ ·êÀÇ ¹è¿À» ¼±¾ðÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¿¬»ó ¹è¿Àº, ·êÀÇ À̸§À» ÇÊÅͳª ValidatorÀÇ À̸§, ȤÀº ÇÊÅÍ Ã¼ÀÎÀ̳ª Validator ChainsÀÇ À̸§°ú °ü·ÃÁþ´Â °ÍÀÔ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹ÀÇ ÇÊÅÍ ·êÀº,'month' Çʵ带 Zend_Filter_Digits ±×¸®°í ÇÊÅ͸µ ÇØ,'account' Çʵ带 Zend_Filter_StringTrim ±×¸®°í ÇÊÅ͸µ ÇÏ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù. ¶Ç, °ËÁõ ·ê¿¡¼´Â,'account' Çʵ忡´Â ¿µ¹®ÀÚ¸¸À» Çã°¡ÇÏ´Â °ÍÀ» ÁöÁ¤ÇØ ÀÖ½À´Ï´Ù.
<?php
$filters = array(
'month' => 'Digits',
'account' => 'StringTrim'
);
$validators = array(
'account' => 'Alpha'
);
À§ÀÇ ¹è¿ÀÇ °¢ Ű´Â, ƯÁ¤ÀÇ µ¥ÀÌÅÍ Çʵ忡 ÇÊÅ͸¦ Àû¿ëÇÏ´Â ·êÀÇ À̸§ÀÌ µË´Ï´Ù. µðÆúÆ®¿¡¼´Â, ·êÀÇ À̸§°ú ±× ·êÀ» Àû¿ëÇÏ´Â ÀÔ·Â ÇʵåÀÇ À̸§ÀÌ µ¿ÀÏÇØÁý´Ï´Ù.
·êÀÇ Á¤ÀÇ ¹æ¹ý¿¡´Â, ¸î°³ÀÇ ¹æ½ÄÀÌ ÀÖ½À´Ï´Ù.
´ÜÀÏÀÇ ½ºÄ®¶ó ¹®ÀÚ¿.À̰ÍÀº Ŭ·¡½º¸í¿¡ ´ëÀÀÇÕ´Ï´Ù.
<?php
$validators = array(
'month' => 'Digits',
);
Zend_Filter_Interface ȤÀº Zend_Validate_Interface (À»)¸¦ ½ÇÀåÇÑ Å¬·¡½ºÀÇ ¸î°³ÀÇ ÀνºÅϽº.
<?php
$digits = new Zend_Validate_Digits();
$validators = array(
'month' => $digits
);
ÇÊÅÍ È¤Àº ValidatorÀÇ ÃÖÀÎÀ» ¼±¾ðÇÏ´Â ¹è¿. ÀÌ ¹è¿ÀÇ ¿ä¼Ò°¡, Ŭ·¡½º¸í ȤÀº ÇÊÅÍ ¿ÀºêÁ§Æ®, Validator ¿ÀºêÁ§Æ®¿¡ ´ëÀÀÇÕ´Ï´Ù.°¢°¢ À§¿¡¼ ¼³¸íÇÑ °Í°ú °°Àº Çü½ÄÀÔ´Ï´Ù. °Ô´Ù°¡ ¶Ç ÇϳªÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. Ŭ·¡½º¸íÀÇ µÚ¿¡ ±× constructor¡¡ ¡¡ ¿¡ °Ç³×ÁÖ´Â Àμö¸¦ °è¼ÓÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
<?php
$validators = array(
'month' => array(
'Digits', // ¹®ÀÚ¿
new Zend_Validate_Int(), // ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº
array('Between', 1, 12) // ¹®ÀÚ¿°ú constructor¡¡ ¡¡ ÀÇ Àμö
)
);
![]() |
ÁÖÀÇ |
---|---|
¹è¿³»¿¡¼ constructor¡¡ ¡¡ ¿¡ÀÇ Àμö¸¦ ºÙ¿© ÇÊÅͳª Validator¸¦ ¼±¾ðÇϸé, ±× ·ê¾È¿¡ ÇÊÅͳª Validator°¡ Çϳª ¹Û¿¡ ¾ø´Â °æ¿ì¿¡¼µµ ¹è¿ Çü½Ä¿¡¼ ·êÀ» ÀÛ¼ºÇØ¾ß ÇÏ°Ô µË´Ï´Ù. |
·êÀÇ Å°·Î¼ Ưº°ÇÑ "¿ÍÀϵå Ä«µå" ¹®ÀÚ '*'
(À»)¸¦ »ç¿ëÇØ ÇÊÅÍ ¹è¿À̳ª Validator ¹è¿À» ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ·ê·Î ¼±¾ðÇÑ ÇÊÅͳª Validator´Â,
¸ðµç ÀÔ·Â Çʵ忡 Àû¿ëµË´Ï´Ù.
ÇÊÅÍ ¹è¿À̳ª Validator ¹è¿³»ÀÇ ¿£Æ®¸®ÀÇ ÁÙ ¼ø¼¿¡´Â Àǹ̰¡ ÀÖ´Â °Í¿¡ ÁÖÀÇÇսôÙ.
·êÀº, ±×°ÍÀ» ¼±¾ðÇÑ ¼ø¼¿¡ Àû¿ëµË´Ï´Ù.
<?php
$filters = array(
'*' => 'StringTrim',
'month' => 'Digits'
);
ÇÊÅͳª ValidatorÀÇ ¹è¿À» ¼±¾ðÇϸé, ±×°ÍÀ» Zend_Filter_Input ÀÇ constructor¡¡ ¡¡ ÀÇ Àμö·Î ÁöÁ¤ÇÕ´Ï´Ù. ±× °á°ú, ¸ðµç ÇÊÅ͸µ ±ÔÄ¢°ú °ËÁõ ±ÔÄ¢À» ¾Ë°í ÀÖ´Â ¿ÀºêÁ§Æ®°¡ µ¹·ÁÁÖ¾îÁý´Ï´Ù. ÀÌ ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇϰí, ÀÔ·Â µ¥ÀÌÅ͸¦ ó¸®ÇØ °¥ °ÍÀÔ´Ï´Ù.
<?php
$input = new Zend_Filter_Input($filters, $validators);
ÀÔ·Â µ¥ÀÌÅÍ´Â, constructor¡¡ ¡¡ ÀÇ Á¦3 Àμö·Î¼ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ µ¥ÀÌÅÍ´Â, ¿¬»ó ¹è¿ Çü½Ä¿¡¼ ÁöÁ¤ÇÕ´Ï´Ù.Çʵå¸íÀÌ ¿¬»ó ¹è¿ÀÇ Å°,
°Å±â¿¡ ´ëÀÀÇÏ´Â °ªÀÌ µ¥ÀÌÅÍÀÇ °ªÀÌ µË´Ï´Ù.PHP ÇÏÁö¸¸ Ç¥ÁØ ±â´ÉÀ¸·Î¼ Á¦°øÇϰí ÀÖ´Ù
$_GET
(ÀÌ)³ª $_POST
±×·¸´Ù°í ÇÏ´Â ½´ÆÛ ±Û·Î¹ú º¯¼ö°¡ ÀÌ Çü½ÄÀÌ µË´Ï´Ù.
Áï, ÀÌ·¯ÇÑ ½´ÆÛ ±Û·Î¹ú º¯¼ö¸¦, Á÷Á¢
Zend_Filter_Input ¿¡ÀÇ ÀÔ·ÂÀ¸·Î¼ °Ç³×ÁÙ ¼ö ÀÖ½À´Ï´Ù.
<?php
$data = $_GET;
$input = new Zend_Filter_Input($filters, $validators, $data);
ȤÀº,setData()
¸Þ¼Òµå¸¦ »ç¿ëÇÏ°í µ¥ÀÌÅ͸¦ °Ç³×ÁÙ ¼öµµ ÀÖ½À´Ï´Ù.
¿©±â¼ °Ç³×ÁÖ´Â µ¥ÀÌÅÍÀÇ Çü½ÄÀº, ¹æ±ÝÀü ¼³¸íÇÑ °Í°ú °°Àº Çü½ÄÀÇ ¿¬»ó ¹è¿ÀÌ µË´Ï´Ù.
<?php
$input = new Zend_Filter_Input($filters, $validators);
$input->setData($newData);
setData()
¸Þ¼Òµå´Â, ±âÁ¸ÀÇ
Zend_Filter_Input ¿ÀºêÁ§Æ®¿¡ ´ëÇØ¼
ÇÊÅÍ ·êÀ̳ª °ËÁõ ·êÀº ±×´ë·Î ´Ù¸¥ ÀÔ·Â µ¥ÀÌÅ͸¦ ÀçÁ¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϸé, °°Àº ·êÀ»
º¹¼ö°¡ ´Ù¸¥ ÀÔ·Â µ¥ÀÌÅÍ¿¡ ´ëÇØ¼ Àû¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÇÊÅͳª Validator¸¦ ¼±¾ðÇØ, ÀԷ ó¸® ÀåÄ¡¸¦ ÀÛ¼ºÇϸé, ´ÙÀ½Àº ±× °á°ú¸¦ ÃëµæÇÏ´Â Â÷·ÊÀÔ´Ï´Ù.Á¸ÀçÇÏÁö ¾Ê´Â Çʵå, ¹ÌÁöÀÇ Çʵå, ¹«È¿ÀÎ ÇʵåµîÀÇ Á¤º¸ ¿Ü¿¡, ÇÊÅ͸¦ Àû¿ëÇÑ ÈÄÀÇ °ªÀ» Æ÷ÇÔÇÑ ÇʵåÀÇ ³»¿ëµµ ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
¸ðµç ÀÔ·Â µ¥ÀÌÅͰ¡ ¹Ù¸®µ¥À̼Ǹ£¸£¸¦ Åë°úÇϸé,
isValid()
¸Þ¼Òµå´Â true
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
¹«È¿ÀÎ Çü½ÄÀÇ ÀÔ·ÂÀ̳ª Çʼö ÇʵåÀÇ ¹ÌÀÔ·ÂÀÌ ÇϳªÀ̱⵵ Çϸé,
isValid()
ÇÏ false
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
<?php
if ($input->isValid()) {
echo "OKn";
}
ÀÌ ¸Þ¼Òµå¿¡´Â, ¿É¼ÇÀ¸·Î ¹®ÀÚ¿ÀÇ Àμö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿©±â¿¡´Â, ÇʵåÀÇ À̸§À» ÁöÁ¤ÇÕ´Ï´Ù.
ÁöÁ¤ÇÑ Çʵ尡 ¹Ù¸®µ¥À̼ÇÀ» Åë°úÇØ Ãëµæ °¡´ÉÇÏ°Ô µÇ¸é,
isValid('fieldName')
ÇÏ true
(À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.
<?php
if ($input->isValid('month')) {
echo "'month' ÇʵåÀÇ ³»¿ëÀº ¿Ã¹Ù¸¥ Çü½ÄÀÔ´Ï´Ùn";
}
¹«È¿ÀÎ (invalid) Çʵå¶õ, °ËÁõÀ» Åë°úÇÏÁö ¾Ê¾Ò´ø ÇʵåÀÔ´Ï´Ù.
Á¸ÀçÇÏÁö ¾Ê´Â´Ù (missing)
Çʵå¶õ, ÀÔ·Â µ¥ÀÌÅÍÁß¿¡´Â Á¸ÀçÇÏÁö ¾ÊÁö¸¸
¸ÞŸÄÚ¸¸µå¿¡¼´Â 'presence'=>'required'
(¿Í)°ú °°ÀÌ Á¤Àǵǰí ÀÖ´Â ÇʵåÀÔ´Ï´Ù
(¸ÞŸÄÚ¸¸µå¿¡ ´ëÇØ¼´Â
ÈÄÀÇ ¼½¼Ç
(À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ).
¹ÌÁöÀÇ (unknown) Çʵå¶õ, ValidatorÀÇ ¹è¿ÀÇ ·ê·Î¼´Â ¼±¾ðµÇ¾î ÀÖÁö ¾ÊÁö¸¸ ÀÔ·Â µ¥ÀÌÅÍ¿¡´Â Á¸ÀçÇÏ´Â ÇʵåÀÔ´Ï´Ù.
<?php
if ($input->hasInvalid() || $input->hasMissing()) {
$messages = $input->getMessages();
}
// getMessages() (Àº)´Â ´ÜÁö,getInvalid() (¿Í)°ú getMissing() (À»)¸¦ ¸ÓÁö ÇÑ °ÍÀ» µ¹·ÁÁÝ´Ï´Ù
if ($input->hasInvalid()) {
$invalidFields = $input->getInvalid();
}
if ($input->hasMissing()) {
$missingFields = $input->getMissing();
}
if ($input->hasUnknown()) {
$unknownFields = $input->getUnknown();
}
getMessages()
¸Þ¼ÒµåÀÇ µ¹¾Æ°¡ °ªÀº ¿¬»ó ¹è¿ÀÌ µË´Ï´Ù.
·ê¸í°ú ±× ·ê¿¡ °ü·ÃÇÏ´Â ¿¡·¯ ¸Þ¼¼ÁöÀÇ ¹è¿À» °ü·ÃÁöÀº °ÍÀÔ´Ï´Ù.
ÀÌ ¹è¿ÀÇ À妽º´Â, ·êÀ» ¼±¾ðÇßÀ» ¶§¿¡ »ç¿ëÇÑ ·ê¸íÀÎ °Í¿¡ ÁÖÀÇÇսôÙ.
À̰ÍÀº, ±× ·ê¿¡ ÀÇÇÑ Ã¼Å©¸¦ ½Ç½ÃÇÑ Çʵå¸í°ú´Â ´Ù¸¨´Ï´Ù.
getMessages()
¸Þ¼Òµå°¡ µ¹·ÁÁÖ´Â ¹è¿Àº,
getInvalid()
(¿Í)°ú
getMissing()
ÀÇ °á°ú¸¦ ¸ÓÁö ÇÑ °ÍÀÌ µË´Ï´Ù.
ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â, °¢°¢ ¹Ù¸®µ¥À̼ǿ¡ ½ÇÆÐÇßÀ» ¶§ÀÇ ¸Þ¼¼Áö¿Í
Çʼö ÀÔ·Â Ç׸ñÀÌ ¹ÌÀÔ·ÂÀÇ °æ¿ìÀÇ ¸Þ¼¼Áö¸¦ µ¹·ÁÁÖ´Â °ÍÀÔ´Ï´Ù.
getErrors()
¸Þ¼Òµå´Â,
·êÀÇ À̸§°ú ¿¡·¯ ID ÀÇ ¹è¿À» ´ëÀÀ½ÃŲ ¿¬»ó ¹è¿À» µ¹·ÁÁÝ´Ï´Ù.
¿¡·¯ ID (Àº)´Â °íÁ¤ ¹®ÀÚ¿·Î, °ËÁõ¿¡ ½ÇÆÐÇÑ ¿øÀÎÀ» ³ªÅ¸³À´Ï´Ù.
¿¡·¯ ¸Þ¼¼Áö´Â º¯°æ °¡´ÉÇÕ´Ï´Ù.ÀÚ¼¼ÇÑ °ÍÀº
Ç×37.1.2. ¡¸ValidatorÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý¡¹ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
getMissing()
ÇÏÁö¸¸ µ¹·ÁÁÖ´Â ¸Þ¼¼Áö´Â, ¿É¼Ç
'missingMessage' ±×¸®°í ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
À̰ÍÀº,Zend_Filter_Input ÀÇ constructor¡¡ ¡¡ ¿¡ÀÇ ÀμöÀΰ¡, ȤÀº
setOptions()
¸Þ¼Òµå·Î ÁöÁ¤ÇÕ´Ï´Ù.
<?php
$options = array(
'missingMessage' => "Field '%field%' is required"
);
$input = new Zend_Filter_Input($filters, $validators, $data, $options);
// ¶Ç ÇϳªÀÇ ¹æ¹ý
$input = new Zend_Filter_Input($filters, $validators, $data);
$input->setOptions($options);
getUnknown()
¸Þ¼ÒµåÀÇ °á°ú´Â,
Çʵå¸í°ú ÇʵåÀÇ °ªÀ» ´ëÀÀ½ÃŲ ¿¬»ó ¹è¿ÀÌ µË´Ï´Ù.
¿©±â¼ ¹è¿ÀÇ Å°·Î¼ »ç¿ëµÇ´Â °ÍÀº Çʵå¸íÀ̸ç,
·êÀÇ À̸§ÀÌ ¾Æ´Õ´Ï´Ù.
¾î¶² °ÍÀÌ ¹ÌÁöÀÇ ÇʵåÀΰ¡¸¦ ³ªÅ¸³»´Âµ¥, ·ê¸í¿¡¼´Â »óŰ¡ ÁÁÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
¹«È¿µµ ¾Æ´Ï¸é Á¸ÀçÇÏÁö ¾Ê´Â °Íµµ ¾Æ´Ï°í,
ÇÑÆí ¹ÌÁöµµ ¾Æ´Ñ Çʵ尡, À¯È¿ÇÑ Çʵå·Î °£ÁÖÇØÁý´Ï´Ù.
À¯È¿ÇÑ ÇʵåÀÇ °ªÀ» ÃëµæÇϱâ À§ÇÑ ¸ÅÁ÷ ¸Þ¼Òµå°¡ ÁغñµÇ¾î ÀÖ½À´Ï´Ù.
¶Ç, ±× À̿ܿ¡µµ getEscaped()
¹× getUnescaped()
±×·¸´Ù°í ÇÏ´Â ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù.
<?php
$m = $input->month; // À̽ºÄÉÀÌÇÁ°¡ ³¡³ »óÅ (¸ÅÁ÷ ¸Þ¼Òµå)
$m = $input->getEscaped('month'); // À̽ºÄÉÀÌÇÁ°¡ ³¡³ »óÅÂ
$m = $input->getUnescaped('month'); // À̽ºÄÉÀÌÇÁÀü
µðÆúÆ®¿¡¼´Â, °ªÀ» ÃëµæÇÒ ¶§ Zend_Filter_HtmlEntities ¿¡ ÀÇÇÑ ÇÊÅ͸µÀ» ÇÕ´Ï´Ù. À̰ÍÀÌ µðÆúÆ®°¡ µÇ°í ÀÖ´Â ÀÌÀ¯´Â, ´ëºÎºÐÀÇ °æ¿ì´Â ÇʵåÀÇ °ªÀ» HTML ¿¡ Ãâ·ÂÇÒ °ÍÀÌ´Ù¶ó°í »ý°¢ÇÒ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. HtmlEntities ÇÊÅ͸¦ »ç¿ëÇϸé, HTML ¿¡ ¿¹±âÄ¡ ¸øÇÑ Ãâ·ÂÀÌ ³ªÅ¸³ªÁö ¾Ê°Ô ÇØ ½ÃÅ¥·¯Æ¼»óÀÇ ¹®Á¦¸¦ ¸·½À´Ï´Ù.
![]() |
ÁÖÀÇ |
---|---|
À§¿¡¼ º» °Íó·³, À̽ºÄÉÀÌÇÁ Çϰí ÀÖÁö ¾Ê´Â °ªµµ
|
´Ù¸¥ ÇÊÅÍ¿¡ ÀÇÇÑ À̽ºÄÉÀÌÇÁ¸¦ ½Ç½ÃÇÏ´Â °Íµµ °¡´ÉÇÕ´Ï´Ù. ±× °æ¿ì´Â, ±×°ÍÀ» constructor¡¡ ¡¡ ÀÇ ¿É¼Ç ¹è¿·Î ÁöÁ¤ÇÕ´Ï´Ù.
<?php
$options = array('escapeFilter' => 'StringTrim');
$input = new Zend_Filter_Input($filters, $validators, $data, $options);
ȤÀº,
setDefaultEscapeFilter()
¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
<?php
$input = new Zend_Filter_Input($filters, $validators, $data);
$input->setDefaultEscapeFilter(new Zend_Filter_StringTrim());
¾î´À ÂÊÀÇ °æ¿ì¿¡ ´ëÇØ¼µµ, À̽ºÄÉÀÌÇÁ ÇÊÅÍÀÇ ÁöÁ¤ ¹æ¹ýÀº ÇÊÅÍ Å¬·¡½ºÀÇ º£À̽º¸íÀ» ³ªÅ¸³»´Â ¹®ÀÚ¿À̳ª ÇÊÅÍ Å¬·¡½ºÀÇ ÀνºÅϽºÀÇ ¾ðÁ¨°¡µË´Ï´Ù.À̽ºÄÉÀÌÇÁ ÇÊÅͷμ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº, ÇÊÅÍ Ã¼ÀÎÀÇ ÀνºÅϽºÀΰ¡ Zend_Filter Ŭ·¡½ºÀÇ ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù.
Ãâ·ÂÀ» À̽ºÄÉÀÌÇÁ ÇÏ´Â ÇÊÅÍ´Â, ÀÌ¿Í °°ÀÌ
¹Ù¸®µ¥À̼ÇÀÇ Á¾·áÈÄ¿¡ Àû¿ëÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
ÇÊÅÍ ·ê·Î ÁöÁ¤ÇÑ ±× ¿ÜÀÇ ÇÊÅÍ´Â,
¹Ù¸®µ¥À̼ÇÀÇ Àü¿¡ Àû¿ëµË´Ï´Ù.
À̽ºÄÉÀÌÇÁ ÇÊÅ͸¦ ¹Ù¸®µ¥À̼ÇÀÇ Àü¿¡ Àû¿ëÇØ ¹ö¸®¸é,
¹Ù¸®µ¥ÀÌ¼Ç ÀÛ¾÷ÀÌ º¸´Ù º¹ÀâÇÏ°Ô µÇ¾î ¹ö·Á,
À̽ºÄÉÀÌÇÁÀüÀÇ °ª°ú À̽ºÄÉÀÌÇÁ ÈÄÀÇ °ªÀ» ¾çÂÊ ¸ðµÎ °ü¸®ÇÏ´Â °ÍÀÌ ¾î·Á¿öÁý´Ï´Ù.
Ãâ·ÂÀ» À̽ºÄÉÀÌÇÁ ÇÏ´Â ÇÊÅÍ´Â,$filters
¹è¿Àº ¾Æ´Ï°í setDefaultEscapeFilter()
±×¸®°í ¼±¾ðÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.
getEscaped()
±×·¸´Ù°í ÇÏ´Â ¸Þ¼Òµå°¡ Çϳª ÀÖÀ» »Ó(¸¸Å)À̹ǷÎ,
À̽ºÄÉÀÌÇÁ¿ëÀÇ ÇÊÅÍ´Â Çϳª ¹Û¿¡ ÁöÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù
(±×·¸´Ù°í´Â ÇØµµ, ±× ÇÊÅͷμ ÇÊÅÍ Ã¼ÀÎÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù).
ÇϳªÀÇ Zend_Filter_Input ÀÇ ÀνºÅϽº·ÎºÎÅÍ
º¹¼öÀÇ ÇÊÅ͸µ ¸Þ¼ÒµåÀÇ °á°ú¸¦ µ¹·ÁÁÖ°í ½ÍÀº °æ¿ì´Â,
Zend_Filter_Input (À»)¸¦ °è½ÂÇÑ ¼ºê Ŭ·¡½º¿¡¼ »õ·Î¿î ¸Þ¼Òµå¸¦ ½ÇÀåÇØ ´ëÀÀÇսôÙ.
Çʵå¿Í ÇÊÅͳª ValidatorÀÇ ´ëÀÀÀ» ¼±¾ðÇϴµ¥ ´õÇϰí, ¹è¿À» ¼±¾ðÇÒ ¶§¿¡ "¸ÞŸÄÚ¸¸µå" (À»)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̰ÍÀº,Zend_Filter_Input ÀÇ °Åµ¿À» Á¦¾îÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. ¸ÞŸÄÚ¸¸µå´Â, ÇÊÅÍ ¹è¿À̳ª Validator ¹è¿ÀÇ °ªÀ¸·Î ÇØ¼ ÁöÁ¤ÇÑ´Ù ¹®ÀÚ¿ À妽ºÀÇ ¿£Æ®¸®°¡ µË´Ï´Ù.
ÇÊÅͳª ValidatorÀÇ À̸§ÀÌ ±×°ÍÀ» Àû¿ëÇÏ´Â ÇʵåÀÇ À̸§°ú ´Ù¸¥ °æ¿ì´Â, 'fields' ¸ÞŸÄÚ¸¸µå·Î Çʵå¸íÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¸ÞŸÄÚ¸¸µå¸¦ ÁöÁ¤ÇÒ ¶§¿¡, ¹®ÀÚ¿Àº ¾Æ´Ï°í Ŭ·¡½º Á¤¼ö
Zend_Filter_Input::FIELDS
(À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php
$filters = array(
'month' => array(
'Digits', // ¼öÄ¡ À妽ºÀÇ ÇÊÅ͸í [0]
'fields' => 'mo' // ¹®ÀÚ¿ À妽ºÀÇ Çʵå¸í ['fields']
)
);
À§ÀÇ ¿¹¿¡¼´Â,'digits' ÇÊÅ͸¦ 'mo' (ÀÌ)¶ó´Â À̸§ÀÇ ÀÔ·Â Çʵ忡 Àû¿ëÇϰí ÀÖ½À´Ï´Ù. ¹®ÀÚ¿ 'month' (Àº)´Â, ´Ü¼øÇÑ ÀÌ ÇÊÅ͸µ ·êÀÇ ´Ï¸ð´Ðũ۰¡ µË´Ï´Ù. 'fields' ¸ÞŸÄÚ¸¸µå·Î Çʵ带 ÁöÁ¤ÇßÀ» °æ¿ì´Â, À̰ÍÀº Çʵå¸íÀ¸·Î¼´Â »ç¿ëµÇÁö ¾Ê°í, ´Ü¼øÇÑ ·ê¸íÀÌ µË´Ï´Ù.
'fields' ¸ÞŸÄÚ¸¸µåÀÇ µðÆúƮġ´Â, ÇöÀçÀÇ ·êÀÇ À妽º°¡ µË´Ï´Ù. À§ÀÇ ¿¹ÀÇ °æ¿ì´Â,'fields' ¸ÞŸÄÚ¸¸µå¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, 'month' (ÀÌ)¶ó´Â À̸§ÀÇ Çʵ忡 ÀÌ ·êÀÌ Àû¿ëµË´Ï´Ù.
'fields' ¸ÞŸÄÚ¸¸µåÀÇ ¶Ç ÇϳªÀÇ »ç¿ë¹ýÀº,
º¹¼öÀÇ ÇʵåÀÇ ÀÔ·ÂÀ» ¿ä±¸ÇÏ´Â ÇÊÅͳª Validator·Î
Çʵ带 ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù.
'fields' ¸ÞŸÄÚ¸¸µå¿¡ ¹è¿À» ÁöÁ¤Çϸé,
ÁöÁ¤ÇÑ ÇʵåÀÇ ¹è¿ÀÌ ÇÊÅͳª Validator¿¡ÀÇ Àμö°¡ µË´Ï´Ù.
¿¹¸¦ µé¾î, ÆÐ½º¿öµå¸¦ µî·ÏÇÏ´Â °æ¿ì¿¡, µÎ Çʵ忡 ÀԷ½ÃÄÑ
±× °ªÀÌ ÀÏÄ¡ÇÏ´Â °ÍÀ» È®ÀÎÇÏ´Â µîÀ̶ó°í Çϴ ó¸®´Â, ÀÚÁÖ ÀÖ´Â °ÍÀÔ´Ï´Ù.
¹è¿ÀÇ Àμö¸¦ ¹Þ¾Æ, ±×·¯ÇÑ ÀÔ·Â ÇʵåÀÇ °ªÀÌ µ¿ÀÏÇÒ ¶§¿¡ ¸¸
true
(À»)¸¦ µ¹·ÁÁÖ´Â Validator¸¦ »ý°¢ÇØ º¾½Ã´Ù.
<?php
$validators = array(
'password' => array(
'StringEquals',
'fields' => array('password1', 'password2')
)
);
// °¡»ó Ŭ·¡½º Zend_Validate_StringEquals ¿¡,
// µÎ Çʵå 'password1' ¹× 'password2' ÀÇ °ªÀ» Æ÷ÇÔÇÑ ¹è¿À» °Ç³×ÁÝ´Ï´Ù
ÀÌ ·êÀÇ ¹Ù¸®µ¥À̼ǿ¡ ½ÇÆÐÇßÀ» °æ¿ì´Â,
getInvalid()
ÀÇ µ¹¾Æ°¡ °ªÀº ·êÀÇ Å°
('password'
) µË´Ï´Ù.'fields'
¸ÞŸÄÚ¸¸µåÀÇ Çʵå¸íÀº ÀÌ¿ëµÇÁö ¾Ê½À´Ï´Ù.
Validator ¹è¿ÀÇ °¢ ¿£Æ®¸®¿¡¼´Â, ¸ÞŸÄÚ¸¸µå 'presence' (À»)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸ÞŸÄÚ¸¸µåÀÇ °ªÀÌ 'required' ÀÇ °æ¿ì´Â, ±× ÇʵåÀÇ °ªÀÌ Çʼö°¡ µË´Ï´Ù. ¹ÌÀÔ·ÂÀÇ °æ¿ì´Â ¡¸Á¸ÀçÇÏÁö ¾Ê´Â Çʵ塹·Î¼ º¸°íµË´Ï´Ù.
ÀÌ ¸ÞŸÄÚ¸¸µå¸¦ ÁöÁ¤ÇÒ ¶§¿¡, ¹®ÀÚ¿Àº ¾Æ´Ï°í Ŭ·¡½º Á¤¼ö
Zend_Filter_Input::PRESENCE
(À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php
$validators = array(
'month' => array(
'digits',
'presence' => 'required'
)
);
ÀÌ ¸ÞŸÄÚ¸¸µåÀÇ µðÆúƮġ´Â 'optional' ÀÔ´Ï´Ù.
ÀÔ·Â µ¥ÀÌÅÍ¿¡ ±× Çʵ尡 Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì¿¡, ¸¸¾à ¸ÞŸÄÚ¸¸µå 'default' ÇÏÁö¸¸ ·ê·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸é ±× ¸ÞŸÄÚ¸¸µåÀÇ °ªÀÌ ÇʵåÀÇ °ªÀÌ µË´Ï´Ù.
ÀÌ ¸ÞŸÄÚ¸¸µå¸¦ ÁöÁ¤ÇÒ ¶§¿¡, ¹®ÀÚ¿Àº ¾Æ´Ï°í Ŭ·¡½º Á¤¼ö
Zend_Filter_Input::DEFAULT_VALUE
(À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ µðÆúƮġ´Â, Validator¸¦ Àû¿ëÇϱâ Àü¿¡ ÇʵåÀÇ ´ëÀԵ˴ϴÙ. ¶Ç, ±× ÇʵåÀÇ µðÆúƮġ´Â ÇöÀçÀÇ ·ê¿¡¼¸¸ Àû¿ëµË´Ï´Ù. ¸¸¾à ±× Çʵ尡 ´Ù¸¥ ·ê·ÎºÎÅÍ ÂüÁ¶µÇ°í ÀÖ¾úÀ» °æ¿ì¿¡´Â, ´Ù¸¥ ·êÀ» Æò°¡ÇÒ ¶§ ±× Çʵ忡´Â °ªÀÌ µé¾î°¡ ÀÖÁö ¾Ê°Ô µË´Ï´Ù. Áï, °³°³ÀÇ ·ê·Î ´Ù¸¥ µðÆúƮġ¸¦ ¼±¾ðÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
<?php
$validators = array(
'month' => array(
'digits',
'default' => '1'
)
);
// 'month' ÇʵåÀÇ °ªÀÌ ¾ø½À´Ï´Ù
$data = array();
$input = new Zend_Filter_Input(null, $validators, $data);
echo $input->month; // 1 (À»)¸¦ Ãâ·ÂÇÕ´Ï´Ù
FIELDS
¸ÞŸÄÚ¸¸µå·Î º¹¼öÀÇ Çʵ带 ·ê¿¡ Á¤ÀÇÇϰí ÀÖ´Â °æ¿ì,
DEFAULT_VALUE
¸ÞŸÄÚ¸¸µå¿¡ ¹è¿À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
´ëÀÀÇϴ ŰÀÇ ÇʵåÀÇ °ªÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì¿¡, µðÆúƮġ°¡ ÀÌ¿ëµË´Ï´Ù.
FIELDS
±×¸®°í º¹¼öÀÇ Çʵ带 Á¤ÀÇÇϰí Àִµ¥
DEFAULT_VALUE
ÇÏÁö¸¸ ½ºÄ®¶ó¿´´ø °æ¿ì´Â,
¹è¿³»ÀÇ ¸ðµç Çʵ忡 ´ëÇØ¼ ±× °ªÀÌ µðÆúƮġ·Î¼ ÀÌ¿ëµË´Ï´Ù.
ÀÌ ¸ÞŸÄÚ¸¸µå¿¡´Â µðÆúƮġ´Â ¾ø½À´Ï´Ù.
µðÆúÆ®¿¡¼´Â, ÀÔ·Â µ¥ÀÌÅÍÁß¿¡ Çʵ尡 Á¸ÀçÇϸé,
ºñ·Ï ±×°ÍÀÌ °ø¹®ÀÚ¿ (''
)
À̾ú´Ù°í ÇØµµ Validator¸¦ Àû¿ëÇÕ´Ï´Ù.
±× °á°ú, °ËÁõ¿¡ ½ÇÆÐÇÏ´Â Àϵµ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.
¿¹¸¦ µé¾î, ¼öÄ¡ÀÎÁö ¾î¶²Áö¸¦ Á¶»çÇÏ´Â Validator´Â,
°ø¹®ÀÚ¿À» ÅëÇÏ¸é ¿¡·¯¸¦ º¸°íÇÕ´Ï´Ù.
ÇÏ´ÃÀÇ ¹®ÀÚ¿ (±æÀÌ Á¦·ÎÀÇ ¹®ÀÚ¿) ÀÇ ¾È¿¡´Â ¹®ÀÚ°¡ Æ÷ÇÔµÇÁö ¾Ê±â ¶§¹®¿¡,
¼öÄ¡¸¦ ³ªÅ¸³»´Â ¹®ÀÚµµ Æ÷ÇÔµÇÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù.
ÇÏ´ÃÀÇ ¹®ÀÚ¿µµ À¯È¿ÇÏ´Ù¶ó°í °£ÁÖ ½ÍÀº °æ¿ì´Â, ¸ÞŸÄÚ¸¸µå
'allowEmpty' (À»)¸¦ true
(À¸)·Î ¼³Á¤ÇÕ´Ï´Ù.
±×·¯ÀÚ(¸é), ÀÔ·Â µ¥ÀÌÅͷμ ÇÏ´ÃÀÇ ¹®ÀÚ¿ÀÌ °Ç³×¹Þ¾ÒÀ» °æ¿ìµµ °ËÁõÀ» Åë°úÇÕ´Ï´Ù.
ÀÌ ¸ÞŸÄÚ¸¸µå¸¦ ÁöÁ¤ÇÒ ¶§¿¡, ¹®ÀÚ¿Àº ¾Æ´Ï°í Ŭ·¡½º Á¤¼ö
Zend_Filter_Input::ALLOW_EMPTY
(À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php
$validators = array(
'address2' => array(
'Alnum',
'allowEmpty' => true
)
);
ÀÌ ¸ÞŸÄÚ¸¸µåÀÇ µðÆúƮġ´Â false
ÀÔ´Ï´Ù.
¸Å¿ì µå¹® ÄÉÀ̽ºÀÔ´Ï´Ù¸¸, Validator´Â ÀÏÀý µî·ÏÇÏÁö ¾Ê°í ¸ÞŸÄÚ¸¸µå
'allowEmpty' (À»)¸¦ false
(Áï, ÇÏ´ÃÀÇ °ªÀº ¹«È¿·Î °£ÁÖÇÑ´Ù)
(¿Í)°ú ¼³Á¤ÇÑ °ËÁõ ·êÀ» Á¤ÀÇÇϸé,
Zend_Filter_Input (Àº)´Â µðÆúÆ®ÀÇ ¿¡·¯ ¸Þ¼¼Áö¸¦ µ¹·ÁÁÝ´Ï´Ù.
ÀÌ ¸Þ¼¼Áö´Â getMessages()
±×¸®°í ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¸Þ¼¼Áö´Â,'notEmptyMessage' ¿É¼ÇÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù.
ÀÌ ¿É¼ÇÀº,Zend_Filter_Input ÀÇ constructor¡¡ ¡¡ ¿¡ÀÇ ÀμöÀΰ¡,
ȤÀº setOptions()
¸Þ¼Òµå·Î ÁöÁ¤ÇÕ´Ï´Ù.
<?php
$options = array(
'notEmptyMessage' => "'%field%' ¿¡ ¹«¾ùÀΰ¡ °ªÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä"
);
$input = new Zend_Filter_Input($filters, $validators, $data, $options);
// ´Ù¸¥ ¹æ¹ý
$input = new Zend_Filter_Input($filters, $validators, $data);
$input->setOptions($options);
µðÆúÆ®¿¡¼´Â, ÇϳªÀÇ ·ê¿¡ º¹¼öÀÇ Validator°¡ µî·ÏµÇ¾î ÀÖ´Â °æ¿ì´Â ±×°ÍÀ» ¸ðµÎ Àû¿ëÇØ, ¸ðµç ¿¡·¯ ¸Þ¼¼Áö°¡ °á°úÀÇ ¸Þ¼¼Áö¿¡ Æ÷ÇÔµÇ°Ô µË´Ï´Ù.
ÇÑÆí, ¸ÞŸÄÚ¸¸µå 'breakChainOnFailure' (À»)¸¦
true
(À¸)·Î Çϸé,
¾î¶² °ÍÀ̳ª ÇϳªÀÇ Validator°¡ ½ÇÆÐÇϸé,
±× ½ÃÁ¡¿¡¼ Validator ChainsÀÌ Á¾·áÇÏ°Ô µË´Ï´Ù.
ÃÖÀγ»ÀÇ ±× ÀÌÈÄÀÇ Validator¿¡ ÀÇÇÑ ÀԷ üũ´Â ½Ç½ÃÇÏÁö ¾Ê½À´Ï´Ù.
Áï, ÁöÀûµÈ ¿¡·¯¸¦ ¼öÁ¤Çß´Ù°í ÇØµµ,
ÇÑÃþ ´õ ´Ù¸¥ ¿¡·¯°¡ ¹ß»ýÇÒ °¡´É¼ºÀÌ ÀÖ´Â °ÍÀÔ´Ï´Ù.
ÀÌ ¸ÞŸÄÚ¸¸µå¸¦ ÁöÁ¤ÇÒ ¶§¿¡, ¹®ÀÚ¿Àº ¾Æ´Ï°í Ŭ·¡½º Á¤¼ö
Zend_Filter_Input::BREAK_CHAIN
(À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php
$validators = array(
'month' => array(
'Digits',
new Zend_Validate_Between(1,12),
new Zend_Validate_GreaterThan(0),
'breakChainOnFailure' => true
)
);
$input = new Zend_Filter_Input(null, $validators);
ÀÌ ¸ÞŸÄÚ¸¸µåÀÇ µðÆúƮġ´Â false
ÀÔ´Ï´Ù.
Validator ÃÖ À×Å© ¶ó½ºÀÌ´Ù Zend_Validate (Àº)´Â, ÃÖÀÎÀÇ ½ÇÇàÀ» Áß´ÜÇÒ ¼ö ÀÖ´Ù°í ÇÏ´Â Á¡À¸·Î Zend_Filter_Input º¸´Ù À¯¿¬ÇÕ´Ï´Ù. Validator ÃÖ À×Å© ¶ó½º¿¡¼´Â, ÃÖÀγ»ÀÇ ValidatorÀÇ Çϳª°¡ ½ÇÆÐÇßÀ» ¶§¿¡ Áï½Ã¿¡ 󸮸¦ Á¾·á½ÃŰ´Â ¿É¼ÇÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. Zend_Filter_Input ÀÇ °æ¿ì´Â, ¸ÞŸÄÚ¸¸µå 'breakChainOnFailure' ÀÇ ¼³Á¤ÀÌ ·ê³»ÀÇ ¸ðµç Validator¿¡ Àû¿ëµË´Ï´Ù. º¸´Ù À¯¿¬ÇÏ°Ô ÇÏ°í ½ÍÀº °æ¿ì´Â, Validator ChainsÀ» Àڱ⠺δãÀ¸·Î ÀÛ¼ºÇØ ±×°ÍÀ» Validator ·êÀÇ Á¤Àǽ÷ΠÁöÁ¤ÇÕ´Ï´Ù.
<?php
// breakChainOnFailure ¼Ó¼ºÀ» °³º°ÀûÀ¸·Î ¼³Á¤ÇÑ Validator ChainsÀ» ÀÛ¼ºÇÕ´Ï´Ù
$chain = new Zend_Validate();
$chain->addValidator(new Zend_Validate_Digits(), true);
$chain->addValidator(new Zend_Validate_Between(1,12), false);
$chain->addValidator(new Zend_Validate_GreaterThan(0), true);
// Á¶±Ý Àü ÀÛ¼ºÇÑ ÃÖÀÎÀ» ÀÌ¿ëÇÏ´Â Validator ·êÀ» ¼±¾ðÇÕ´Ï´Ù
$validators = array(
'month' => $chain
);
$input = new Zend_Filter_Input(null, $validators);
·ê³»ÀÇ °³°³ÀÇ ValidatorÀÇ ¿¡·¯ ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÏ·Á¸é , ¸ÞŸÄÚ¸¸µå 'messages' (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.ÀÌ ¸ÞŸÄÚ¸¸µåÀÇ °ª¿¡´Â, ´Ù¾çÇÑ °ÍÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ÇϳªÀÇ ·ê¾È¿¡ º¹¼öÀÇ Validator°¡ ÀÖ´Â °æ¿ì¿¡ °¢°¢ ´Ù¸¥ ¸Þ¼¼Áö¸¦ ÁöÁ¤Çϰųª ÁöÁ¤ÇÑ Validator·Î ƯÁ¤ÀÇ ¿¡·¯ Á¶°Ç ¶§¿¡°Ô¸¸ ÁöÁ¤ÇÑ ¸Þ¼¼Áö¸¦ µ¹·ÁÁְųª¶ó°í Çß´ø °ÍÀÌ »ý°¢ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ¸ÞŸÄÚ¸¸µå¸¦ ÁöÁ¤ÇÒ ¶§¿¡, ¹®ÀÚ¿Àº ¾Æ´Ï°í Ŭ·¡½º Á¤¼ö
Zend_Filter_Input::MESSAGES
(À»)¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÌÇÏ¿¡ ³ªÅ¸³»´Â °ÍÀº, ¾î´À Validator¿¡ µðÆúÆ®ÀÇ ¿¡·¯ ¸Þ¼¼Áö¸¦ ¼³Á¤ÇÏ´Â ¿¹ÀÔ´Ï´Ù.
<?php
$validators = array(
'month' => array(
'digits',
'messages' => '´Þ·Î¼ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº ¼ýÀÚ¸¸ÀÔ´Ï´Ù'
)
);
¿¡·¯ ¸Þ¼¼Áö¸¦ ¼³Á¤ÇÏ°í ½ÍÀº Validator°¡ ´Ù¼ö ÀÖ´Â °æ¿ì´Â, 'messages' ¸ÞŸÄÚ¸¸µåÀÇ °ªÀ¸·Î ÇØ¼ ¹è¿À» ÁöÁ¤ÇÕ´Ï´Ù.
ÀÌ ¹è¿ÀÇ °¢ ¿ä¼Ò´Â, °¢°¢ °°Àº À妽ºÀÇ Validator¿¡ Àû¿ëµË´Ï´Ù. Áï,n ¹øÂ°ÀÇ ValidatorÀÇ ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÏ·Á¸é ¹è¿ÀÇ À妽º¿¡ n (À»)¸¦ ÁöÁ¤ÇÕ´Ï´Ù. À̰ÍÀ» »ç¿ëÇϰí, ÃÖÀγ»ÀÇ Æ¯Á¤ÀÇ Validator¿¡¸¸ ¸Þ¼¼Áö¸¦ ¼³Á¤ÇØ ±× Àܴ̿ µðÆúÆ®ÀÇ ¸Þ¼¼Áö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php
$validators = array(
'month' => array(
'digits',
new Zend_Validate_Between(1, 12),
'messages' => array(
// Validator [0] (Àº)´Â µðÆúÆ®ÀÇ ¸Þ¼¼Áö¸¦ »ç¿ëÇØ,
// Validator [1] ¸¶¼Å µ¶ÀÚÀûÀÎ ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÕ´Ï´Ù
1 => '´Þ·Î¼ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº 1 (À¸)·ÎºÎÅÍ 12 ±îÁöÀÇ °ªÀÔ´Ï´Ù'
)
)
);
ÇϳªÀÇ Validator¿¡ º¹¼öÀÇ ¿¡·¯ ¸Þ¼¼Áö°¡ Á¸ÀçÇÏ´Â °æ¿ì´Â, ¸Þ¼¼ÁöÀÇ Å°·Î ½Äº°ÇÕ´Ï´Ù. °¢ Validator Ŭ·¡½º¿¡´Â °¢°¢ ´Ù¸¥ ۰¡ Á¸ÀçÇØ, ±× ۸¦ ÀÌ¿ëÇØ °¢°¢ÀÇ Validator Ŭ·¡½º°¡ »ý¼ºÇÏ´Â ¿¡·¯ ¸Þ¼¼Áö¸¦ ½Äº°ÇÕ´Ï´Ù. Validator Ŭ·¡½º¿¡¼´Â, ¸Þ¼¼ÁöÀÇ Å°¿¡ ´ëÀÀÇÏ´Â Á¤¼ö°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Å°¸¦ 'messages' ¸ÞŸÄÚ¸¸µå·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, ¹®ÀÚ¿Àº ¾Æ´Ï°í ¿¬»ó ¹è¿ Çü½Ä¿¡¼ °Ç³×ÁÝ´Ï´Ù.
<?php
$validators = array(
'month' => array(
'digits', new Zend_Validate_Between(1, 12),
'messages' => array(
'´Þ·Î¼ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀº ¼ýÀÚ¸¸ÀÔ´Ï´Ù',
array(
Zend_Validate_Between::NOT_BETWEEN =>
'´ÞÀÇ °ª %value% (Àº)´Â,%min% ÀÌ»ó %max% ÀÌÇÏÀÇ °ªÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù',
Zend_Validate_Between::NOT_BETWEEN_STRICT =>
'´ÞÀÇ °ª %value% (Àº)´Â,%min% º¸´Ù Å©°í, ÇÑÆí %max% º¸´Ù ÀÛÀº °ªÀÌ ¾Æ´Ï¸é ¾ÈµË´Ï´Ù'
)
)
)
);
°¢ Validator Ŭ·¡½º°¡ ¿¡·¯ ¸Þ¼¼Áö¸¦ º¹¼ö °¡Áö°í ÀÖÀ»Áö³ª ±×·¯ÇÑ ¸Þ¼¼ÁöÀÇ Å°, ±×¸®°í ¸Þ¼¼ÁöÀÇ ÅÛÇø´À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÅäÅ« µî¿¡ ´ëÇÑ Á¤º¸¿¡ ´ëÇØ¼´Â, °¢ Validator Ŭ·¡½ºÀÇ ¹®¼¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
¸ÞŸÄÚ¸¸µå 'allowEmpty' (ÀÌ)³ª 'breakChainOnFailure',
'presence' ÀÇ Àü·ê °øÅëÀÇ µðÆúƮġ´Â,
Zend_Filter_Input ÀÇ constructor¡¡ ¡¡ ÀÇ Àμö $options
±×¸®°í ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.À̰ÍÀ» »ç¿ëÇϸé,
°³º°ÀÇ ·ê¿¡ ¸ÞŸÄÚ¸¸µå¸¦ ¼³Á¤ÇÏÁö ¾Ê¾Æµµ
Àü·ê °øÅëÀÇ µðÆúƮġ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php
// µðÆúÆ®·Î, ÀüÇʵ忡 °ø¹®ÀÚ¿À» Çã°¡Çϵµ·Ï(µíÀÌ) ÇÕ´Ï´Ù
$options = array('allowEmpty' => true);
// °ø¹®ÀÚ¿À» ±ÝÁöÇÏ°í ½ÍÀº Çʵ尡 ÀÖ´Â °æ¿ì´Â,
// °³º°ÀÇ ·ê Á¤ÀÇ·Î, ÀÌ ¼³Á¤À» µ¡¾²±âÇÒ ¼ö ÀÖ½À´Ï´Ù
$validators = array(
'month' => array(
'Digits',
'allowEmpty' => false
)
);
$input = new Zend_Filter_Input($filters, $validators, $data, $options);
¸ÞŸÄÚ¸¸µå 'fields','messages' (¿Í)°ú 'default' ¿¡ ´ëÇØ¼´Â, ÀÌ Å×Å©´ÐÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.
µðÆúÆ®¿¡¼´Â, ÇÊÅͳª Validator¸¦ ¹®ÀÚ¿·Î ÁöÁ¤ÇßÀ» °æ¿ì´Â, ´ëÀÀÇϴ Ŭ·¡½º¸¦ Zend_Filter À̸§ °ø°£ ȤÀº Zend_Validate À̸§ °ø°£À¸·ÎºÎÅÍ Ã£½À´Ï´Ù. ¿¹¸¦ µé¾î, ¹®ÀÚ¿ 'digits' ±×¸®°í ÇÊÅ͸¦ ÁöÁ¤Çϸé, Zend_Filter_Digits Ŭ·¡½º¸¦ ã°Ô µË´Ï´Ù.
µ¶ÀÚÀûÀÎ ÇÊÅÍ Å¬·¡½º³ª Validator Ŭ·¡½º¸¦ ÀÛ¼ºÇϰųª ½áµåÆÄƼÀÇ ÇÊÅͳª Validator¸¦ »ç¿ëÇϰųª ÇÏ´Â °æ¿ì´Â, ±× Ŭ·¡½ºÀÇ À̸§ °ø°£Àº Zend_Filter (ÀÌ)³ª Zend_Validate (¿Í)°ú´Â ´Ù¸£°ÚÁö¿ä. ±× °æ¿ì´Â,Zend_Filter_Input ¿¡ ´Ù¸¥ À̸§ °ø°£À» ÅëÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸§ °ø°£Àº, constructor¡¡ ¡¡ ÀÇ ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
<?php
$options = array('namespace' => 'My_Namespace');
$input = new Zend_Filter_Input($filters, $validators, $data, $options);
ȤÀº,addNamespace() ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
<?php
$input->addNamespace('Other_Namespace');
// ÀÌ °á°ú, ´ÙÀ½ÀÇ ¼ø¼·Î ã°Ô µË´Ï´Ù
// 1. My_Namespace
// 2. Other_Namespace
// 3. Zend_Filter
// 4. Zend_Validate
À̸§ °ø°£ Zend_Filter (¿Í)°ú Zend_Validate (Àº)´Â »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù. »õ·Î¿î À̸§ °ø°£À» Ãß°¡ÇÏ´Â °Í¸¸ÀÌ °¡´ÉÇØÁö°í ÀÖ½À´Ï´Ù. Ãß°¡ÇÑ À̸§ °ø°£À» ¸ÕÀú ã¾Æ,Zend À̸§ °ø°£À» ¸¶Áö¸·À¸·Î ã´Â´Ù°í ÇÏ´Â ¼ø¼°¡ µË´Ï´Ù.