Zend_Console_Getopt
¿ÀºêÁ§Æ®·Î ¿É¼ÇÀ» ¼±¾ðÇØ, Ä¿¸àµå ¶óÀΠȤÀº ¹è¿·ÎºÎÅÍ
Àμö¸¦ ¹ÞÀ¸¸é, ÀÌ ¿ÀºêÁ§Æ®¸¦ »ç¿ëÇϰí, À¯Àú°¡ ÇÁ·Î±×·¥À» ±âµ¿ÇßÀ» ¶§¿¡ ÁöÁ¤ÇÑ ¿É¼ÇÀ» ÃëµæÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Å¬·¡½º´Â ¸ÅÁ÷ ¸Þ¼Òµå¸¦
½ÇÀåÇϰí ÀÖÀ¸¹Ç·Î, ¿É¼ÇÀÇ À̸§À» ÁöÁ¤ÇØ ¹®ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
½ÇÁ¦·Î µ¥ÀÌÅ͸¦ ÆÛ½º ÇÏ´Â °ÍÀº,Zend_Console_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;
}
?>
¿¹¿Ü°¡ ¹ß»ýÇÏ´Â °ÍÀº, ´ÙÀ½°ú °°Àº °æ¿ìÀÔ´Ï´Ù.
ÁöÁ¤ÇÑ ¿É¼ÇÀ» ÀνÄÇÒ ¼ö ¾ø´Â °æ¿ì.
ÆÄ¶ó¹ÌÅͰ¡ ÇÊ¿äÇÑ ¿É¼ÇÀ¸·Î, ÆÄ¶ó¹ÌÅͰ¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì.
¿É¼ÇÀÇ ÆÄ¶ó¹ÌÅÍÀÇ ÇüŰ¡ ºÎÁ¤ÇÑ °æ¿ì. ¿¹¸¦ µé¾î Á¤¼öÇüÀ» ¿ä±¸ÇÏ´Â ¿É¼ÇÀ¸·Î ºñ¼öÄ¡ ¹®ÀÚ¿ÀÌ °Ç³×¹Þ¾ÒÀ» °æ¿ì µî.
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)¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
À¯Àú°¡ Ä¿¸àµå ¶óÀÎÀ¸·Î ÀÔ·ÂÇÑ ¿É¼ÇÀÇ ÀüÀ϶÷À» ÃëµæÇÏ·Á¸é , ¸î°³ÀÇ ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
¹®ÀÚ¿·Î Ãëµæ: toString()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ¿É¼ÇÀÇ ³»¿ëÀÌ, °ø¹é¿¡¼
´Ü¶ôÁö¾îÁ³´Ù "flag=value
"
Çü½ÄÀÇ ¹®ÀÚ¿·Î µ¹·ÁÁÖ¾îÁý´Ï´Ù.ÆÄ¶ó¹ÌÅ͸¦ °¡ÁöÁö ¾Ê´Â ¿É¼ÇÀÇ °æ¿ì, value ÀÇ ºÎºÐÀº ¸®ÅÍ·²
¹®ÀÚ¿ "true
"
µË´Ï´Ù.
¹è¿·Î Ãëµæ: toArray()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ¿É¼ÇÀº, ¼öÄ¡ À妽ºÀÇ
¹è¿·Î µ¹·ÁÁÖ¾îÁý´Ï´Ù. ¹è¿ÀÇ °¢ ¿ä¼ÒÀÇ °ªÀº ¹®ÀÚ¿·Î, Ç÷¡±×ÀÇ µÚ¿¡ ( ¸¸¾à ÀÖÀ¸¸é) ÆÄ¶ó¹ÌÅͰ¡ °è¼Ó µË´Ï´Ù.
JSON µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿·Î¼ Ãëµæ: toJson()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
XML µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿·Î¼ Ãëµæ: toXml()
¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ ¸ðµç Ãâ·Â ¸Þ¼Òµå·Î, Ç÷¡±× ¹®ÀÚ¿·Î¼ »ç¿ëÇÏ´Â °ÍÀº ¾Ù¸®¾î½º(alias) ¸®½ºÆ®ÀÇ ¼±µÎ¿¡ ÀÖ´Â °ÍÀÔ´Ï´Ù.¿¹¸¦ µé¾î ¾î´À
¿É¼ÇÀÇ ¾Ù¸®¾î½º(alias)°¡ "verbose|v
"
(¿Í)°ú °°ÀÌ ¼±¾ðµÇ°í ÀÖ¾ú´Ù°í Çϸé, ÃÖÃÊÀÇ ¹®ÀÚ¿ÀÌ´Ù "verbose
"
(À»)¸¦ ¿É¼Ç¸íÀ¸·Î¼ »ç¿ëÇÕ´Ï´Ù. ¿É¼Ç Ç÷¡±×¸í¿¡´Â, ¼±µÎÀÇ µ¥½¬´Â Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù.
¿É¼Ç Àμö ¹× ±× ÆÄ¶ó¹ÌÅ͸¦ Ä¿¸àµå ¶óÀÎÀ¸·ÎºÎÅÍ ÆÛ½º ÇÑ Èĵµ, ¾ÆÁ÷ Ãß°¡ÀÇ Àμö°¡ ³²¾Æ ÀÖÀ»Áöµµ ¸ð¸¨´Ï´Ù.ÀÌ·¯ÇÑ Àμö¸¦ ÃëµæÇÏ·Á¸é 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"
(¿Í)°ú °°Àº °æ¿ìÀÔ´Ï´Ù.