Zend_Console_Getopt
Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ Àº, Çϳª·ÎºÎÅÍ
¼¼ °³ÀÇ Àμö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.ÃÖÃÊÀÇ Àμö¿¡¼´Â, ÀÌ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ¼Æ÷Æ®ÇÏ´Â ¿É¼ÇÀ» ¼±¾ðÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â, ¿É¼ÇÀ» ¼±¾ðÇϱâ À§ÇÑ ¶Ç
ÇϳªÀÇ ±¸¹®µµ ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. ÀÌÇÏÀÇ ¸¶µð·Î, ÀÌ·¯ÇÑ ±¸¹®¿¡ ´ëÇÑ ¼½ÄÀ̳ª »ç¿ë¹ýÀ» ÂüÁ¶ÇØ ÁֽʽÿÀ.
constructor¡¡ ¡¡ ¿¡´Â, °Ô´Ù°¡ µÎ °³ÀÇ Àμö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. À̰͵éÀº ¿É¼ÇÀÔ´Ï´Ù.µÎ¹øÂ°ÀÇ Àμö·Î ÁöÁ¤ÇÏ´Â °ÍÀº Ä¿¸àµå ¶óÀÎ
ÀμöÀÔ´Ï´Ù.µðÆúÆ®´Â $_SERVER['argv']
µË´Ï´Ù.
constructor¡¡ ¡¡ ÀÇ 3¹øÂ°ÀÇ Àμö¿¡´Â, ¼³Á¤ ¿É¼ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù. À̰ÍÀ¸·Î Zend_Console_Getopt
ÀÇ
ÇൿÀ» º¯°æÇÕ´Ï´Ù. »ç¿ë °¡´ÉÇÑ ¿É¼Ç¿¡ ´ëÇØ¼´Â ¼³Á¤ÀÇ
Ãß°¡ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.
Zend_Console_Getopt
(Àº)´Â,GNU Getopt (¿Í)°ú ´àÀº Çü½ÄÀÇ
ÄÄÆÑÆ®ÇÑ ±¸¹®À» ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù (http://www.gnu.org/software/libc/manual/html_node/Getopt.html (À»)¸¦
ÂüÁ¶ÇØ ÁֽʽÿÀ) . ÀÌ ±¸¹®Àº, ÇÑ ±ÛÀÚÀÇ Ç÷¡±×¿¡¼¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ¼Æ÷Æ®ÇÏ´Â Ç÷¡±×¿¡ ´ëÀÀÇÏ´Â ¹®ÀÚ¸¦,
ÇϳªÀÇ ¹®ÀÚ¿¿¡ Á¤¸®ÇØ·Î ÁöÁ¤ÇÕ´Ï´Ù. ¹®ÀÚÀÇ µÚ·Î ÄÚ·Ð (":
") (À»)¸¦ °è¼ÓÇϸé,
±× Ç÷¡±×°¡ ÆÄ¶ó¹ÌÅ͸¦ ¿ä±¸ÇÏ´Â °ÍÀ» ³ªÅ¸³À´Ï´Ù.
·Ê 6.1. ªÀº Çü½ÄÀÇ ±¸¹®ÀÇ »ç¿ë
<?php
require_once 'Zend/Console/Getopt.php';
$opts = new Zend_Console_Getopt('abp:');
?>
À§ÀÇ ¿¹´Â,Zend_Console_Getopt
(À»)¸¦ ÀÌ¿ëÇϰí, »ç¿ëÇÏ´Â ¿É¼ÇÀ» "-a
"
,
"-b
"
ȤÀº "-p
"
(ÀÌ)¶ó°í ¼±¾ðÇÏ´Â °ÍÀÔ´Ï´Ù. ¸¶Áö¸· Ç÷¡±×¿¡´Â ÆÄ¶ó¹ÌÅͰ¡ ÇÊ¿äÇÕ´Ï´Ù.
ªÀº ±¸¹®À» »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀº, ÇÑ ±ÛÀÚÀÇ Ç÷¡±×¿¡ ÇÑÁ¤µË´Ï´Ù. ¾Ù¸®¾î½º(alias)³ª ÆÄ¶ó¹ÌÅÍÇü, ÇïÇÁ ¹®ÀÚ¿Àº ªÀº ±¸¹®¿¡¼´Â ¼Æ÷Æ®ÇÏÁö ¾Ê½À´Ï´Ù.
º¸´Ù °í±â´ÉÀǺ°ÀÇ ±¸¹®µµ ¼Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.ÀÌ ±¸¹®¿¡¼´Â, Ç÷¡±×¿¡ ¾Ù¸®¾î½º(alias)¸¦ ¼³Á¤Çϰųª ¿É¼Ç ÆÄ¶ó¹ÌÅÍÀÇ ÇüŸ¦ ÁöÁ¤Çϰųª À¯Àú¿¡ ´ëÇØ¼ »ç¿ë¹ýÀ» ³ªÅ¸³»´Â ÇïÇÁ ¹®ÀÚ¿À» ÁöÁ¤Çϱ⵵ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ªÀº ±¸¹®ÀÇ ¿É¼ÇÀ» ¼±¾ðÇÏ´Â °æ¿ì¿¡´Â ¹®ÀÚ¿À» »ç¿ëÇß½À´Ï´Ù¸¸, ±ä ±¸¹®ÀÇ °æ¿ì´Â ¿¬»ó ¹è¿À» »ç¿ëÇÕ´Ï´Ù. À̰ÍÀ» constructor¡¡ ¡¡ ÀÇ ÃÖÃÊÀÇ Àμö·Î¼ ÁöÁ¤ÇÕ´Ï´Ù.
¿¬»ó ¹è¿ÀÇ °¢ ¿ä¼ÒÀÇ Å°´Â, Ç÷¡±×ÀÇ À̸§°ú ¾Ù¸®¾î½º(alias)¸¦ ÆÄÀÌÇÁ ±âÈ£ ("|
")
±×¸®°í ¿¬°áÇÑ ¹®ÀÚ¿ÀÌ µË´Ï´Ù. ±× ¿É¼ÇÀÌ ÆÄ¶ó¹ÌÅ͸¦ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì´Â, Ç÷¡±×¿¡ ÀÌ¾î µîÈ£ ("=
")
(À»)¸¦ ½á, ±× ÈÄ¿¡ ÆÄ¶ó¹ÌÅÍÀÇ ÇüŸ¦ ³ªÅ¸³»´Â ¹®ÀÚ¸¦ °è¼ÓÇÕ´Ï´Ù.
"=s
"
(Àº)´Â ¹®ÀÚ¿ ÆÄ¶ó¹ÌÅ͸¦ ³ªÅ¸³À´Ï´Ù.
"=w
"
(Àº)´Â ¿öµå ÆÄ¶ó¹ÌÅÍ ( °ø¹éÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â ¹®ÀÚ¿) (À»)¸¦ ³ªÅ¸³À´Ï´Ù.
"=i
"
(Àº)´Â Á¤¼ö ÆÄ¶ó¹ÌÅ͸¦ ³ªÅ¸³À´Ï´Ù.
±× ÆÄ¶ó¹ÌÅͰ¡ ¿É¼ÇÀÎ °æ¿ì´Â, µîÈ£ ´ë½Å¿¡ µ¥½¬ ("-
") (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.
¿¬»ó ¹è¿ÀÇ °¢ ¿ä¼ÒÀÇ °ªÀº, ÇïÇÁ ¹®ÀÚ¿À» ³ªÅ¸³À´Ï´Ù.À̰ÍÀº, À¯Àú¿¡ ´ëÇØ¼ ÇÁ·Î±×·¥ÀÇ »ç¿ë¹ýÀ» ¼³¸íÇÏ´Â °ÍÀÔ´Ï´Ù.
·Ê 6.2. ±ä Çü½ÄÀÇ ±¸¹®ÀÇ »ç¿ë
<?php
require_once 'Zend/Console/Getopt.php';
$opts = new Zend_Console_Getopt(
array(
'apple|a' => '
ÀÌ ¿É¼ÇÀº »ç°ú¸¦ ¼±ÅÃÇÕ´Ï´Ù.ÆÄ¶ó¹ÌÅÍ´Â ºÒÇÊ¿äÇÕ´Ï´Ù.',
'banana|b=i' => '
ÀÌ ¿É¼ÇÀº ¹Ù³ª³ª¸¦ ¼±ÅÃÇÕ´Ï´Ù.Á¤¼ö ÆÄ¶ó¹ÌÅͰ¡ ÇʼöÀÔ´Ï´Ù.',
'pear|p-s' => '
ÀÌ ¿É¼ÇÀº ¼¾ç¹è¸¦ ¼±ÅÃÇÕ´Ï´Ù.¿É¼ÇÀ¸·Î ¹®ÀÚ¿ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÕ´Ï´Ù.'
)
);
?>
À§ÀÇ ¿¹¿¡¼´Â, 3Á¾·ùÀÇ ¿É¼ÇÀ» ¼±¾ðÇϰí ÀÖ½À´Ï´Ù.
"--apple
"
¹× "-a
"
(Àº)´Â °°Àº Àǹ̸¦ °¡Áö´Â ¾Ù¸®¾î½º(alias)·Î, ÀÌ ¿É¼ÇÀº ÆÄ¶ó¹ÌÅ͸¦ ¹ÞÁö ¾Ê½À´Ï´Ù.
"--banana
"
¹× "-b
"
(Àº)´Â °°Àº Àǹ̸¦ °¡Áö´Â ¾Ù¸®¾î½º(alias)·Î, ÀÌ ¿É¼Ç¿¡´Â Á¤¼öÄ¡ÀÇ ÆÄ¶ó¹ÌÅͰ¡ Çʼö°¡ µË´Ï´Ù. ¸¶Áö¸·¿¡ "--pear
"
¹× "-p
"
(Àº)´Â °°Àº Àǹ̸¦ °¡Áö´Â ¾Ù¸®¾î½º(alias)·Î, ÀÌ ¿É¼Ç¿¡´Â ÀÓÀÇ·Î ¹®ÀÚ¿ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.