6.2. Getopt ÀÇ ±ÔÄ¢ÀÇ ¼±¾ð

Zend_Console_Getopt Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ Àº, Çϳª·ÎºÎÅÍ ¼¼ °³ÀÇ Àμö¸¦ ÁöÁ¤ÇÕ´Ï´Ù.ÃÖÃÊÀÇ Àμö¿¡¼­´Â, ÀÌ ¾îÇø®ÄÉÀ̼ÇÀ¸·Î ¼­Æ÷Æ®ÇÏ´Â ¿É¼ÇÀ» ¼±¾ðÇÕ´Ï´Ù. ÀÌ Å¬·¡½º´Â, ¿É¼ÇÀ» ¼±¾ðÇϱâ À§ÇÑ ¶Ç ÇϳªÀÇ ±¸¹®µµ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. ÀÌÇÏÀÇ ¸¶µð·Î, ÀÌ·¯ÇÑ ±¸¹®¿¡ ´ëÇÑ ¼­½ÄÀ̳ª »ç¿ë¹ýÀ» ÂüÁ¶ÇØ ÁֽʽÿÀ.

constructor¡¡ ¡¡ ¿¡´Â, °Ô´Ù°¡ µÎ °³ÀÇ Àμö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. À̰͵éÀº ¿É¼ÇÀÔ´Ï´Ù.µÎ¹øÂ°ÀÇ Àμö·Î ÁöÁ¤ÇÏ´Â °ÍÀº Ä¿¸àµå ¶óÀÎ ÀμöÀÔ´Ï´Ù.µðÆúÆ®´Â $_SERVER['argv'] µË´Ï´Ù.

constructor¡¡ ¡¡ ÀÇ 3¹øÂ°ÀÇ Àμö¿¡´Â, ¼³Á¤ ¿É¼ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù. À̰ÍÀ¸·Î Zend_Console_Getopt ÀÇ ÇൿÀ» º¯°æÇÕ´Ï´Ù. »ç¿ë °¡´ÉÇÑ ¿É¼Ç¿¡ ´ëÇØ¼­´Â ¼³Á¤ÀÇ Ãß°¡ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.

6.2.1. ªÀº Çü½ÄÀÇ ¿É¼ÇÀÇ ¼±¾ð

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)³ª ÆÄ¶ó¹ÌÅÍÇü, ÇïÇÁ ¹®ÀÚ¿­Àº ªÀº ±¸¹®¿¡¼­´Â ¼­Æ÷Æ®ÇÏÁö ¾Ê½À´Ï´Ù.

6.2.2. ±ä Çü½ÄÀÇ ¿É¼ÇÀÇ ¼±¾ð

º¸´Ù °í±â´ÉÀǺ°ÀÇ ±¸¹®µµ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù.ÀÌ ±¸¹®¿¡¼­´Â, Ç÷¡±×¿¡ ¾Ù¸®¾î½º(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)·Î, ÀÌ ¿É¼Ç¿¡´Â ÀÓÀÇ·Î ¹®ÀÚ¿­ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.