6.3. ¿É¼Ç ¹× ÀμöÀÇ Ãëµæ

Zend_Console_Getopt ¿ÀºêÁ§Æ®·Î ¿É¼ÇÀ» ¼±¾ðÇØ, Ä¿¸àµå ¶óÀΠȤÀº ¹è¿­·ÎºÎÅÍ Àμö¸¦ ¹ÞÀ¸¸é, ÀÌ ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇϰí, À¯Àú°¡ ÇÁ·Î±×·¥À» ±âµ¿ÇßÀ» ¶§¿¡ ÁöÁ¤ÇÑ ¿É¼ÇÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º´Â ¸ÅÁ÷ ¸Þ¼Òµå¸¦ ½ÇÀåÇϰí ÀÖÀ¸¹Ç·Î, ¿É¼ÇÀÇ À̸§À» ÁöÁ¤ÇØ ¹®ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

½ÇÁ¦·Î µ¥ÀÌÅ͸¦ ÆÛ½º ÇÏ´Â °ÍÀº,Zend_Console_Getopt ¿¡ ´ëÇÑ ÃÖÃÊÀÇ ¹®ÀǸ¦ ½Ç½ÃÇßÀ» ¶§ÀÔ´Ï´Ù. Áï, ÆÛ½º¸¦ ½Ç½ÃÇϱâ Àü¿¡ ¸î°³ÀÇ ¸Þ¼Òµå·Î ¿É¼ÇÀ̳ª Àμö, ÇïÇÁ ¹®ÀÚ¿­À̳ª ¼³Á¤ Ç׸ñÀ» º¯°æÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.

6.3.1. Getopt ÀÇ ¿¹¿Ü ó¸®

À¯Àú°¡ Ä¿¸àµå ¶óÀÎÀ¸·Î ¹«È¿ÀÎ Àμö¸¦ ÁöÁ¤Çϸé, ÆÛ½º ÇÔ¼ö´Â Zend_Console_Getopt_Exception (À»)¸¦ ½½·Î¿ì ÇÕ´Ï´Ù.ÀÌ ¿¹¿Ü¸¦, ¾îÇø®ÄÉÀ̼ÇÀÇ ÄÚµå·Î ó¸®ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. parse() ¸Þ¼Òµå¸¦ »ç¿ëÇϰí, ¿ÀºêÁ§Æ®¿¡ Àμö¸¦ ÆÛ½º ½Ãŵ´Ï´Ù. try ºí·Ï³»¿¡¼­ parse() (À»)¸¦ ½ÇÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î, Æí¸®ÇÕ´Ï´Ù. ÆÛ½º¿¡ ¼º°øÇϸé, ±× ÀÌÈÄ¿¡ ÀçÂ÷ ¿¹¿Ü°¡ ½½·Î¿ì µÉ °ÍÀº ¾ø½À´Ï´Ù. ½½·Î¿ì µÈ ¿¹¿Ü ¿ÀºêÁ§Æ®·Î, µ¶ÀÚÀûÀÎ ¸Þ¼Òµå getUsageMessage() ÇÏÁö¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.À̰ÍÀº, ¼±¾ð ¶°³¯ ¼ö ÀÖ¾î ¸ðµç ¿É¼Ç¿¡ ´ëÇÑ »ç¿ë¹ýÀ» ¼³¸íÇÑ ¹®ÀÚ¿­À» µ¹·ÁÁÝ´Ï´Ù.

·Ê 6.3. Getopt ÀÇ ¿¹¿Ü ó¸®


<?php
try {
    
$opts = new Zend_Console_Getopt('abp:');
    
$opts->parse();
} catch (
Zend_Console_Getopt_Exception $e) {
    echo 
$e->getUsageMessage();
    exit;
}
?>

¿¹¿Ü°¡ ¹ß»ýÇÏ´Â °ÍÀº, ´ÙÀ½°ú °°Àº °æ¿ìÀÔ´Ï´Ù.

  • ÁöÁ¤ÇÑ ¿É¼ÇÀ» ÀνÄÇÒ ¼ö ¾ø´Â °æ¿ì.

  • ÆÄ¶ó¹ÌÅͰ¡ ÇÊ¿äÇÑ ¿É¼ÇÀ¸·Î, ÆÄ¶ó¹ÌÅͰ¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì.

  • ¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ÇüŰ¡ ºÎÁ¤ÇÑ °æ¿ì. ¿¹¸¦ µé¾î Á¤¼öÇüÀ» ¿ä±¸ÇÏ´Â ¿É¼ÇÀ¸·Î ºñ¼öÄ¡ ¹®ÀÚ¿­ÀÌ °Ç³×¹Þ¾ÒÀ» °æ¿ì µî.

6.3.2. À̸§¿¡ ÀÇÇÑ ¿É¼ÇÀÇ Ãëµæ

getOption() ¸Þ¼Òµå¸¦ »ç¿ëÇϸé, ¿É¼ÇÀÇ °ªÀ» ¹®ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ±× ¿É¼ÇÀÌ ÆÄ¶ó¹ÌÅ͸¦ °¡Áö°í ÀÖ´Â °æ¿ì´Â, ÀÌ ¸Þ¼Òµå´Â ÆÄ¶ó¹ÌÅÍÀÇ °ªÀ» µ¹·ÁÁÝ´Ï´Ù. ÆÄ¶ó¹ÌÅ͸¦ °¡Áö°í ÀÖÁö ¾ÊÀº ¿É¼ÇÀ¸·Î À¯Àú°¡ ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇßÀ» °æ¿ì´Â, ÀÌ ¸Þ¼Òµå´Â true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù. ±× ÀÌ¿ÜÀÇ °æ¿ì´Â, ÀÌ ¸Þ¼Òµå´Â null (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

·Ê 6.4. getOption() ÀÇ »ç¿ë¹ý


<?php
$opts 
= new Zend_Console_Getopt('abp:');
$b $opts->getOption('b');
$p_parameter $opts->getOption('p');
?>

ȤÀº, ¸ÅÁ÷ ¸Þ¼Òµå __get() (À»)¸¦ »ç¿ëÇϰí, ¸¶Ä¡ Ŭ·¡½ºÀÇ ¸â¹ö º¯¼öÀÎ °Í °°ÀÌ ¿É¼ÇÀÇ °ªÀ» ÃëµæÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¶Ç, ¸ÅÁ÷ ¸Þ¼Òµå __isset() µµ ½ÇÀåÇϰí ÀÖ½À´Ï´Ù.

·Ê 6.5. ¸ÅÁ÷ ¸Þ¼Òµå __get() ¹× __isset() ÀÇ »ç¿ë¿¹


<?php
$opts 
= new Zend_Console_Getopt('abp:');
if (isset(
$opts->b)) {
    echo 
" ¿É¼Ç b  (À»)¸¦ ÃëµæÇß½À´Ï´Ù.n";
}
$p_parameter $opts->p//  ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â null  µË´Ï´Ù
?>

¿É¼Ç¿¡ ¾Ù¸®¾î½º(alias)°¡ ÁöÁ¤µÇ¾î ÀÖ´Â °æ¿ì´Â, À§ÀÇ ¹æ¹ýÀ¸·Î ±× ¾Ù¸®¾î½º(alias)¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

6.3.3. ¿É¼ÇÀÇ Ãëµæ

À¯Àú°¡ Ä¿¸àµå ¶óÀÎÀ¸·Î ÀÔ·ÂÇÑ ¿É¼ÇÀÇ ÀüÀ϶÷À» ÃëµæÇÏ·Á¸é , ¸î°³ÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.

  • ¹®ÀÚ¿­·Î Ãëµæ: toString() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ¿É¼ÇÀÇ ³»¿ëÀÌ, °ø¹é¿¡¼­ ´Ü¶ôÁö¾îÁ³´Ù "flag=value" Çü½ÄÀÇ ¹®ÀÚ¿­·Î µ¹·ÁÁÖ¾îÁý´Ï´Ù.ÆÄ¶ó¹ÌÅ͸¦ °¡ÁöÁö ¾Ê´Â ¿É¼ÇÀÇ °æ¿ì, value ÀÇ ºÎºÐÀº ¸®ÅÍ·² ¹®ÀÚ¿­ "true" µË´Ï´Ù.

  • ¹è¿­·Î Ãëµæ: toArray() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ¿É¼ÇÀº, ¼öÄ¡ À妽ºÀÇ ¹è¿­·Î µ¹·ÁÁÖ¾îÁý´Ï´Ù. ¹è¿­ÀÇ °¢ ¿ä¼ÒÀÇ °ªÀº ¹®ÀÚ¿­·Î, Ç÷¡±×ÀÇ µÚ¿¡ ( ¸¸¾à ÀÖÀ¸¸é) ÆÄ¶ó¹ÌÅͰ¡ °è¼Ó µË´Ï´Ù.

  • JSON µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿­·Î¼­ Ãëµæ: toJson() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.

  • XML µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿­·Î¼­ Ãëµæ: toXml() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.

ÀÌ·¯ÇÑ ¸ðµç Ãâ·Â ¸Þ¼Òµå·Î, Ç÷¡±× ¹®ÀÚ¿­·Î¼­ »ç¿ëÇÏ´Â °ÍÀº ¾Ù¸®¾î½º(alias) ¸®½ºÆ®ÀÇ ¼±µÎ¿¡ ÀÖ´Â °ÍÀÔ´Ï´Ù.¿¹¸¦ µé¾î ¾î´À ¿É¼ÇÀÇ ¾Ù¸®¾î½º(alias)°¡ "verbose|v" (¿Í)°ú °°ÀÌ ¼±¾ðµÇ°í ÀÖ¾ú´Ù°í Çϸé, ÃÖÃÊÀÇ ¹®ÀÚ¿­ÀÌ´Ù "verbose" (À»)¸¦ ¿É¼Ç¸íÀ¸·Î¼­ »ç¿ëÇÕ´Ï´Ù. ¿É¼Ç Ç÷¡±×¸í¿¡´Â, ¼±µÎÀÇ µ¥½¬´Â Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù.

6.3.4. ºñ¿É¼Ç ÀμöÀÇ Ãëµæ

¿É¼Ç Àμö ¹× ±× ÆÄ¶ó¹ÌÅ͸¦ Ä¿¸àµå ¶óÀÎÀ¸·ÎºÎÅÍ ÆÛ½º ÇÑ Èĵµ, ¾ÆÁ÷ Ãß°¡ÀÇ Àμö°¡ ³²¾Æ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù.ÀÌ·¯ÇÑ Àμö¸¦ ÃëµæÇÏ·Á¸é geRemainingArgs() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.ÀÌ ¸Þ¼Òµå´Â, ¾î´À ¿É¼Ç¿¡µµ ¼ÓÇÏÁö ¾Ê´Â ¹®ÀÚ¿­ÀÇ ¹è¿­À» µ¹·ÁÁÝ´Ï´Ù.

·Ê 6.6. getRemainingArgs() ÀÇ »ç¿ë¹ý


<?php
$opts 
= new Zend_Console_Getopt('abp:');
$opts->setArguments(array('-p''p_parameter''filename'));
$args $opts->getRemainingArgs(); // array('filename')  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù
?>

Zend_Console_Getopt (Àº)´Â,GNU ÀÇ °ü½ÀÀÎ ¡¸µ¥½¬ µÑ¸¸ÀÇ Àμö°¡ ÀÖÀ¸¸é, ¿É¼ÇÀº °Å±â¼­ ¸¶Áö¸·À¸·Î °£ÁÖÇÑ´Ù¡¹¸¦ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. ±× ÈÄ¿¡ °è¼Ó µÇ´Â Àμö´Â, ºñ¿É¼Ç Àμö·Î¼­ Ãë±ÞÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. À̰ÍÀº, ¿É¼ÇÀÌ ¾Æ´Ñ Àμö°¡ µ¥½¬·Î ½ÃÀ۵Ǵ °æ¿ì µî¿¡ À¯¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î "rm -- -filename-with-dash" (¿Í)°ú °°Àº °æ¿ìÀÔ´Ï´Ù.