6.4. Zend_Console_Getopt ÀÇ ¼³Á¤

6.4.1. ¿É¼ÇÀÇ ±ÔÄ¢ÀÇ Ãß°¡

Zend_Console_Getopt ÀÇ constructor¡¡ ¡¡ À¸·Î ÁöÁ¤ÇÏ´Â °Í Àܷ̿εµ, Ãß°¡·Î ¿É¼ÇÀÇ ±ÔÄ¢À» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.±× ¶§¿¡´Â addRules() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. addRules() ¿¡ °Ç³×ÁÖ´Â Àμö´Â, constructor¡¡ ¡¡ ÀÇ ÃÖÃÊÀÇ Àμö¿Í °°½À´Ï´Ù. ªÀº Çü½ÄÀÇ ¿É¼ÇÁöÁ¤À» ³ªÅ¸³»´Â ¹®ÀÚ¿­, ȤÀº ±ä Çü½ÄÀÇ ¿É¼ÇÁöÁ¤À» ³ªÅ¸³»´Â ¿¬»ó ¹è¿­ÀÌ µË´Ï´Ù. ¿É¼ÇÀ» ÁöÁ¤ÇÏ´Â ±¸¹®ÀÇ ÀÚ¼¼ÇÑ °ÍÀº, Getopt ÀÇ ±ÔÄ¢ÀÇ ¼±¾ð (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.

·Ê 6.7. addRules() ÀÇ »ç¿ë¹ý


<?php
$opts 
= new Zend_Console_Getopt('abp:');
$opts->addRules(
  array(
    
'verbose|v' => ' »ó¼¼ÇÑ Ãâ·ÂÀ» Ç¥½ÃÇÑ´Ù'
  
)
);
?>

À§ÀÇ ¿¹´Â,"--verbose" ±×·¸´Ù°í ÇÏ´Â ¿É¼Ç°ú ±× ¾Ù¸®¾î½º(alias) "-v" (À»)¸¦ constructor¡¡ ¡¡ À¸·Î Á¤ÀÇÇÑ ¿É¼Ç¿¡ Ãß°¡Çϰí ÀÖ½À´Ï´Ù. Zend_Console_Getopt ÀÇ ÀνºÅϽº¿¡´Â, ªÀº Çü½ÄÀÇ ¿É¼Ç°ú ±ä Çü½ÄÀÇ ¿É¼ÇÀÌ °øÁ¸ °¡´ÉÇÑ °ÍÀ¸·Î ÁÖÀÇÇսôÙ.

6.4.2. ÇïÇÁ ¸Þ¼¼ÁöÀÇ Ãß°¡

±ä Çü½ÄÀÇ ¿É¼Ç ±ÔÄ¢À» ¼±¾ðÇÒ ¶§·Î ÁöÁ¤ÇÏ´Â ÇïÇÁ ¹®ÀÚ¿­¿¡ °¡¼¼ÇØ setHelp() ¸Þ¼Òµå¿¡¼­µµ ÇïÇÁ ¹®ÀÚ¿­À» ±ÔÄ¢°ú °ü·ÃÁöÀ» ¼ö ÀÖ½À´Ï´Ù. setHelp() ¸Þ¼ÒµåÀÇ Àμö´Â ¿¬»ó ¹è¿­·Î, ۰¡ Ç÷¡±×¸í, °ªÀÌ ´ëÀÀÇÏ´Â ÇïÇÁ ¹®ÀÚ¿­ÀÌ µË´Ï´Ù.

·Ê 6.8. setHelp() ÀÇ »ç¿ë¹ý


<?php
$opts 
= new Zend_Console_Getopt('abp:');
$opts->setHelp(
    array(
    
'a' => ' ÀÌ ¿É¼ÇÀº »ç°ú¸¦ ¼±ÅÃÇÕ´Ï´Ù.ÆÄ¶ó¹ÌÅÍ´Â ºÒÇÊ¿äÇÕ´Ï´Ù.',
    
'b' => ' ÀÌ ¿É¼ÇÀº ¹Ù³ª³ª¸¦ ¼±ÅÃÇÕ´Ï´Ù.Á¤¼ö ÆÄ¶ó¹ÌÅͰ¡ ÇʼöÀÔ´Ï´Ù.',
    
'p' => ' ÀÌ ¿É¼ÇÀº ¼­¾ç¹è¸¦ ¼±ÅÃÇÕ´Ï´Ù.¿É¼ÇÀ¸·Î ¹®ÀÚ¿­ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÕ´Ï´Ù.'
    
)
);
?>

¾Ù¸®¾î½º(alias) µ¹ÃâÇØ ¿É¼ÇÀ» ¼±¾ðÇßÀ» °æ¿ì´Â, ¾î´À ¾Ù¸®¾î½º(alias)¿¡¼­µµ ¿¬»ó ¹è¿­ÀÇ Å°¿¡ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿É¼ÇÀ» ªÀº ±¸¹®À¸·Î ¼±¾ðÇßÀ» °æ¿ì, ÇïÇÁ ¹®ÀÚ¿­À» ¼³Á¤ÇÏ·Á¸é setHelp() ¸Þ¼Òµå°¡ À¯ÀÏÇÑ ¼ö´ÜÀÌ µË´Ï´Ù.

6.4.3. ¿É¼ÇÀÇ ¾Ù¸®¾î½º(alias)ÀÇ Ãß°¡

¿É¼ÇÀÇ ¾Ù¸®¾î½º(alias)¸¦ ¼±¾ðÇÏ·Á¸é setAliases ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.Àμö´Â ¿¬»ó ¹è¿­·Î, ¹æ±ÝÀü ¼±¾ðÇÑ Ç÷¡±×°¡ Ű, ±×¸®°í ±× Ç÷¡±×ÀÇ ¾Ù¸®¾î½º(alias)°¡ °ªÀÌ µË´Ï´Ù. ¿©±â¼­ ÁöÁ¤ÇÑ ¾Ù¸®¾î½º(alias)°¡, ±âÁ¸ÀÇ ¾Ù¸®¾î½º(alias)¿¡ ¸ÓÁö µË´Ï´Ù. ¹Ù²Ù¾î ¸»Çϸé, ¿ø·¡ Á¤Àǵǰí ÀÖ´ø ¾Ù¸®¾î½º(alias)µµ ±×´ë·Î À¯È¿ÇÏ´Ù¶ó°í ¸»ÇÏ´Â °ÍÀÔ´Ï´Ù.

¾Ù¸®¾î½º(alias)´Â ÇÑ ¹ø ¹Û¿¡ ¼±¾ðÇÒ ¼ö ¾ø½À´Ï´Ù.±âÁ¸ÀÇ ¾Ù¸®¾î½º(alias)¸¦ ÀçÁ¤ÀÇÇÏ·Á°í Çϸé Zend_Console_Getopt_Exception ÇÏÁö¸¸ ½½·Î¿ì µË´Ï´Ù.

·Ê 6.9. setAliases() ÀÇ »ç¿ë¹ý


<?php
$opts 
= new Zend_Console_Getopt('abp:');
$opts->setAliases(
    array(
    
'a' => 'apple',
    
'a' => 'apfel',
    
'p' => 'pear'
    
)
);
?>

À§ÀÇ ¿¹¿¡¼­´Â "-a" ,"--apple" ¹× "--apfel" (À»)¸¦ ¼­·Î ¾Ù¸®¾î½º(alias) ÁöÁ¤ÇÑ ´ÙÀ½¿¡, "-p" (¿Í)°ú "--pear" µµ ¾Ù¸®¾î½º(alias)·Î Çϰí ÀÖ½À´Ï´Ù.

¿É¼ÇÀ» ªÀº ±¸¹®À¸·Î ¼±¾ðÇßÀ» °æ¿ì, ¾Ù¸®¾î½º(alias)¸¦ Á¤ÀÇÇÏ·Á¸é setAliases() ¸Þ¼Òµå°¡ À¯ÀÏÇÑ ¼ö´ÜÀÌ µË´Ï´Ù.

6.4.4. Àμö ¸®½ºÆ®ÀÇ Ãß°¡

µðÆúÆ®¿¡¼­´Â,Zend_Console_Getopt ÇÏ $_SERVER['argv'] ÀÇ ¹è¿­À» »ç¿ëÇØ Ä¿¸àµå ¶óÀÎ Àμö¸¦ ÆÛ½º ÇÕ´Ï´Ù. constructor¡¡ ¡¡ ÀÇ µÎ¹øÂ°ÀÇ Àμö·Î¼­ Àμö¸¦ Æ÷ÇÔÇÑ ´Ù¸¥ ¹è¿­À» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. °Ô´Ù°¡ ´õ ´Ù¸¥ Àμö¸¦ Ãß°¡ÇÏ·Á¸é addArguments() ¸Þ¼Òµå¸¦ »ç¿ëÇØ, ±âÁ¸ÀÇ Àμö ¹è¿­À» ¿Å°Ü³õÀ¸·Á¸é setArguments() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.¾î´À ÂÊÀÇ °æ¿ì¿¡ ´ëÇØ¼­µµ, ÀÌ·¯ÇÑ ¸Þ¼ÒµåÀÇ ÆÄ¶ó¹ÌÅÍ´Â ´Ü¼øÇÑ ¹®ÀÚ¿­ÀÇ ¹è¿­ÀÌ µË´Ï´Ù. addArguments() (Àº)´Â ÇöÀçÀÇ Àμö¿¡ ±× ¹è¿­À» Ãß°¡ÇØ, setArguments() (Àº)´Â ÇöÀçÀÇ Àμö¸¦ ±× ¹è¿­·Î ¿Å°Ü³õ½À´Ï´Ù.

·Ê 6.10. addArguments() ¹× setArguments() ÀÇ »ç¿ë¹ý


<?php
//  µðÆúÆ®¿¡¼­´Â, constructor¡¡ ¡¡ Àº $_SERVER['argv']  (À»)¸¦ »ç¿ëÇÕ´Ï´Ù
$opts = new Zend_Console_Getopt('abp:');

//  ±âÁ¸ÀÇ Àμö¿¡ ¹è¿­À» Ãß°¡ÇÕ´Ï´Ù
$opts->addArguments(array('-a''-p''p_parameter''non_option_arg));

//  »õ·Î¿î ¹è¿­·Î ±âÁ¸ÀÇ Àμö¸¦ ¿Å°Ü³õ½À´Ï´Ù
$opts->setArguments(array('
-a', '-p', 'p_parameter', 'non_option_arg));
?>

6.4.5. ¼³Á¤ÀÇ Ãß°¡

Zend_Console_Getopt constructor¡¡ ¡¡ ÀÇ 3¹øÂ°ÀÇ Àμö´Â, ¼³Á¤ ¿É¼ÇÀÇ ¹è¿­ÀÔ´Ï´Ù. À̰ÍÀº, µ¹¾Æ°¡ °ªÀÌ µÇ´Â ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽºÀÇ °Åµ¿À» ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ¼³Á¤ ¿É¼ÇÀ» ÁöÁ¤Çϱâ À§Çؼ­ setOptions() ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.ȤÀº, ¿É¼ÇÀ» °³º°ÀûÀ¸·Î ¼³Á¤ÇÏ·Á¸é setOption() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.

[
ÁÖÀÇ] " ¿É¼Ç" ±×·¸´Ù°í ÇÏ´Â ¿ë¾î¿¡ ´ëÇØ
¿©±â¼­ ¸»ÇÑ´Ù " ¿É¼Ç" (Àº)´Â, Zend_Console_Getopt Ŭ·¡½ºÀÇ ¼³Á¤¿¡ »ç¿ëÇÏ´Â °ÍÀÇ ÀÏÀ» °¡¸®Å°°í ÀÖ½À´Ï´Ù. ¿É¼Ç¶ó´Â ¸»ÀÇ ÀÇ¹Ì ÀÚü´Â,Zend Framework ÀÇ ±× ¿ÜÀÇ ºÎºÐ¿¡¼­ »ç¿ëÇϰí ÀÖ´Â ÀÇ¹Ì¿Í °°½À´Ï´Ù. Zend_Console_Getopt ÇÏÁö¸¸ ÆÛ½º ÇÑ´Ù Ä¿¸àµå ¶óÀÎ ¿É¼ÇÀ¸·Î´Â ¾ø½À´Ï´Ù.

ÇöÀç ¼­Æ÷Æ®Çϰí ÀÖ´Â ¿É¼Ç¿¡´Â, Ŭ·¡½º Á¤¼ö°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù. ¿É¼Ç°ú °Å±â¿¡ ´ëÀÀÇÏ´Â Á¤¼ö ( ¹× ¸®ÅÍ·²Ä¡) ÀÇ À϶÷À» ÀÌÇÏ¿¡ Á¤¸®ÇÕ´Ï´Ù.

  • Zend_Console_Getopt::CONFIG_DASHDASH ("dashDash") (À»)¸¦ true (À¸)·Î Çϸé, Ç÷¡±×ÀÇ Á¾·á¸¦ ³ªÅ¸³»´Â Ư¼ö Ç÷¡±× "--" (À»)¸¦ À¯È¿ÇÏ°Ô ÇÕ´Ï´Ù.´õºí µ¥½¬ÀÇ µÚ¿¡ °è¼Ó µÇ´Â Ä¿¸àµå ¶óÀÎ Àμö´Â, ºñ·Ï µ¥½¬·Î ½ÃÀ۵Ǿî À־ ¿É¼ÇÀ̶ó°í´Â º¸ÀÌÁö ¾Ê½À´Ï´Ù. ÀÌ ¼³Á¤ ¿É¼ÇÀº, µðÆúÆ®·Î true µÇ°í ÀÖ½À´Ï´Ù.

  • Zend_Console_Getopt::CONFIG_DASHDASH ("ignoreCase") (À»)¸¦ true (À¸)·Î Çϸé, ´ë¹®ÀÚ ¼Ò¹®ÀÚ°¡ ´Ù¸¦ ¸¸ÇÑ Ç÷¡±×¸¦ ¼­·Î ¾Ù¸®¾î½º(alias)·Î¼­ Ãë±ÞÇÕ´Ï´Ù. Áï,"-a" (¿Í)°ú "-A" (Àº)´Â °°Àº Ç÷¡±×·Î °£ÁÖÇØÁý´Ï´Ù. ÀÌ ¼³Á¤ ¿É¼ÇÀº, µðÆúÆ®¿¡¼­´Â false µÇ°í ÀÖ½À´Ï´Ù.

  • Zend_Console_Getopt::CONFIG_RULEMODE ("ruleMode") ¿¡´Â Zend_Console_Getopt::MODE_ZEND ("zend") ȤÀº Zend_Console_Getopt::MODE_GNU ("gnu") ÀÇ ¾î´ÀÂÊÀ̵çÀ» ÁöÁ¤ÇÕ´Ï´Ù. µ¶ÀÚÀûÀÎ ±¸¹®À» »ç¿ëÇϱâ À§Çؼ­ Ŭ·¡½º¸¦ È®ÀåÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇØ, ÀÌ ¿É¼ÇÀ» »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Zend_Console_Getopt ±×¸®°í ¼­Æ÷Æ®µÇ°í ÀÖ´Â µÎ °³ÀÇ ¸ðµå´Â ¸íÈ®ÇÕ´Ï´Ù. ¹®ÀÚ¿­À» ÁöÁ¤ÇßÀ» °æ¿ì´Â MODE_GNU , ±× ÀÌ¿ÜÀÇ °æ¿ì´Â MODE_ZEND (À¸)·Î °£ÁÖÇÕ´Ï´Ù. ¸¸¾à Ŭ·¡½º¸¦ È®ÀåÇØ ´Ù¸¥ ±¸¹® Çü½ÄÀ» Ãß°¡ÇßÀ» °æ¿ì´Â, ±× ¸ðµå¸¦ ÀÌ ¿É¼ÇÀ¸·Î ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

Àå·¡´Â, ÇÑÃþ ´õ ¸¹Àº ¼³Á¤ ¿É¼ÇÀÌ ÀÌ Å¬·¡½º¿¡ Ãß°¡µÉ ¿¹Á¤ÀÔ´Ï´Ù.

setOption() ¸Þ¼Òµå¿¡ °Ç³×ÁÖ´Â Àμö´Â, ¼³Á¤ ¿É¼Ç¸í°ú ±× °ªÀÇ µÑÀÔ´Ï´Ù.

·Ê 6.11. setOption() ÀÇ »ç¿ë¹ý


<?php
$opts 
= new Zend_Console_Getopt('abp:');
$opts->setOption('ignoreCase'true);
?>

setOptions() ¸Þ¼Òµå¿¡ °Ç³×ÁÖ´Â Àμö´Â ¿¬»ó ¹è¿­ÀÔ´Ï´Ù. ±× ۰¡ ¼³Á¤ ¿É¼Ç¸í, ±×¸®°í °ªÀ¸·Î ÇØ¼­ ¼³Á¤Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù. À̰ÍÀº, Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ À¸·Î »ç¿ëÇÏ´Â Æ÷¸ËÀ̱⵵ ÇÕ´Ï´Ù. ÁöÁ¤ÇÑ ¼³Á¤ Ç׸ñÀÌ ±âÁ¸ÀÇ ¼³Á¤¿¡ ¸ÓÁö µÇ¹Ç·Î, ¸ðµç ¿É¼ÇÀ» ÁöÁ¤ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

·Ê 6.12. setOptions() ÀÇ »ç¿ë¹ý


<?php
$opts 
= new Zend_Console_Getopt('abp:');
$opts->setOptions(
    array(
        
'ignoreCase' => true,
    
'dashDash'   => false
    
)
);
?>