Class Zend_Console_Getopt

Description

Zend_Console_Getopt is a class to parse options for command-line applications.

Terminology: Argument: an element of the argv array. This may be part of an option, or it may be a non-option command-line argument. Flag: the letter or word set off by a '-' or '--'. Example: in '--output filename', '--output' is the flag. Parameter: the additional argument that is associated with the option. Example: in '--output filename', the 'filename' is the parameter. Option: the combination of a flag and its parameter, if any. Example: in '--output filename', the whole thing is the option.

The following features are supported:

  • Short flags like '-a'. Short flags are preceded by a single dash. Short flags may be clustered e.g. '-abc', which is the same as '-a' '-b' '-c'.
  • Long flags like '--verbose'. Long flags are preceded by a double dash. Long flags may not be clustered.
  • Options may have a parameter, e.g. '--output filename'.
  • Parameters for long flags may also be set off with an equals sign, e.g. '--output=filename'.
  • Parameters for long flags may be checked as string, word, or integer.
  • Automatic generation of a helpful usage message.
  • Signal end of options with '--'; subsequent arguments are treated as non-option arguments, even if they begin with '-'.
  • Raise exception Zend_Console_Getopt_Exception in several cases when invalid flags or parameters are given. Usage message is returned in the exception object.
The format for specifying options uses a PHP associative array. The key is has the format of a list of pipe-separated flag names, followed by an optional '=' to indicate a required parameter or '-' to indicate an optional parameter. Following that, the type of parameter may be specified as 's' for string, 'w' for word, or 'i' for integer.

Examples:

  • 'user|username|u=s' this means '--user' or '--username' or '-u' are synonyms, and the option requires a string parameter.
  • 'p=i' this means '-p' requires an integer parameter. No synonyms.
  • 'verbose|v-i' this means '--verbose' or '-v' are synonyms, and they take an optional integer parameter.
  • 'help|h' this means '--help' or '-h' are synonyms, and they take no parameter.
The values in the associative array are strings that are used as brief descriptions of the options when printing a usage message.

The simpler format for specifying options used by PHP's getopt() function is also supported. This is similar to GNU getopt and shell getopt format.

Example: 'abc:' means options '-a', '-b', and '-c' are legal, and the latter requires a string parameter.

  • version: Release: @package_version@
  • copyright: Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
  • since: Class available since Release 0.6.0
  • license: New BSD License

Located in /Console/Getopt.php (line 130)


	
			
Class Constant Summary
 CONFIG_DASHDASH = 'dashDash'
 CONFIG_IGNORECASE = 'ignoreCase'
 CONFIG_RULEMODE = 'ruleMode'
 MODE_GNU = 'gnu'
 MODE_ZEND = 'zend'
 TYPE_INTEGER = 'i'
 TYPE_STRING = 's'
 TYPE_WORD = 'w'
Variable Summary
 mixed $_argv
 mixed $_options
 mixed $_parsed
 mixed $_progname
 mixed $_ruleMap
 mixed $_rules
Method Summary
 Zend_Console_Getopt __construct (array $rules, [array $argv = null], [array $getoptConfig = array()])
 Zend_Console_Getopt addRules (array $rules)
 mixed getOption ( $flag, string $key)
 array getOptions ()
 array getRemainingArgs ()
 string getUsageMessage ()
 Zend_Console_Getopt setAliases (array $aliasMap)
 Zend_Console_Getopt setHelp (array $helpMap)
 Zend_Console_Getopt setOption (string $configKey, string $configValue)
 Zend_Console_Getopt setOptions (array $getoptConfig)
 array toArray ()
 string toJson ()
 string toString ()
 string toXml ()
 void _addRulesModeGnu (string $rules)
 void _addRulesModeZend (array $rules)
 bool _checkParameterType (string $flag, string $param)
 void _parseLongOption (mixed &$argv)
 void _parseShortOptionCluster (mixed &$argv)
 void _parseSingleOption (string $flag,  &$argv, mixed $argv)
 string __get (string $key)
 bool __isset (string $key)
 void __set (string $key, string $value)
 string __toString ()
 void __unset (string $key)
Variables
mixed $_argv = array() (line 176)

Stores the command-line arguments for the calling applicaion.

  • access: protected
mixed $_getoptConfig = array(
self::CONFIG_RULEMODE => self::MODE_ZEND,
self::CONFIG_DASHDASH => true,
self::CONFIG_IGNORECASE => false
)
(line 167)

Defaults for getopt configuration are: ruleMode is 'zend' format, dashDash (--) token is enabled, ignoreCase is not enabled.

  • access: protected
mixed $_options = array() (line 197)

Stores options given by the user in the current invocation of the application, as well as parameters given in options.

  • access: protected
mixed $_parsed = false (line 207)

State of the options: parsed or not yet parsed?

  • access: protected
mixed $_progname = '' (line 181)

Stores the name of the calling applicaion.

  • access: protected
mixed $_remainingArgs = array() (line 202)

Stores the command-line arguments other than options.

  • access: protected
mixed $_ruleMap = array() (line 191)

Stores alternate spellings of legal options.

  • access: protected
mixed $_rules = array() (line 186)

Stores the list of legal options for this application.

  • access: protected
Methods
Constructor __construct (line 226)

The constructor takes one to three parameters.

The first parameter is $rules, which may be a string for gnu-style format, or a structured array for Zend-style format.

The second parameter is $argv, and it is optional. If not specified, $argv is inferred from the global argv.

The third parameter is an array of configuration parameters to control the behavior of this instance of Getopt; it is optional.

  • access: public
Zend_Console_Getopt __construct (array $rules, [array $argv = null], [array $getoptConfig = array()])
  • array $rules
  • array $argv
  • array $getoptConfig
addArguments (line 320)

Define additional command-line arguments.

These are appended to those defined when the constructor was called.

  • access: public
Zend_Console_Getopt addArguments (array $argv)
  • array $argv
addRules (line 383)

Define additional option rules.

These are appended to the rules defined when the constructor was called.

  • access: public
Zend_Console_Getopt addRules (array $rules)
  • array $rules
getOption (line 515)

Return the state of the option seen on the command line of the current application invocation.

This function returns true, or the parameter value to the option, if any. If the option was not given, this function returns false.

  • access: public
mixed getOption ( $flag, string $key)
  • string $key
  • $flag
getOptions (line 499)

Return a list of options that have been seen in the current argv.

  • access: public
array getOptions ()
getRemainingArgs (line 535)

Return the arguments from the command-line following all options found.

  • access: public
array getRemainingArgs ()
getUsageMessage (line 550)

Return a useful option reference, formatted for display in an error message.

Note that this usage information is provided in most Exceptions generated by this class.

  • access: public
string getUsageMessage ()
parse (line 654)

Parse command-line arguments and find both long and short options.

Also find option parameters, and remaining arguments after all options have been parsed.

  • access: public
setAliases (line 600)

Define aliases for options.

The parameter $aliasMap is an associative array mapping option name (short or long) to an alias.

  • throws: Zend_Console_Getopt_Exception
  • access: public
Zend_Console_Getopt setAliases (array $aliasMap)
  • array $aliasMap
setArguments (line 334)

Define full set of command-line arguments.

These replace any currently defined.

  • access: public
Zend_Console_Getopt setArguments (array $argv)
  • array $argv
setHelp (line 632)

Define help messages for options.

The parameter $help_map is an associative array mapping option name (short or long) to the help string.

  • access: public
Zend_Console_Getopt setHelp (array $helpMap)
  • array $helpMap
setOption (line 368)

Define one configuration option as a key/value pair.

These are not program options, but properties to configure the behavior of Zend_Console_Getopt.

  • access: public
Zend_Console_Getopt setOption (string $configKey, string $configValue)
  • string $configKey
  • string $configValue
setOptions (line 349)

Define multiple configuration options from an associative array.

These are not program options, but properties to configure the behavior of Zend_Console_Getopt.

  • access: public
Zend_Console_Getopt setOptions (array $getoptConfig)
  • array $getoptConfig
toArray (line 434)

Return the current set of options and parameters seen as an array of canonical options and parameters.

Clusters have been expanded, and option aliases have been mapped to their primary option names.

  • access: public
array toArray ()
toJson (line 452)

Return the current set of options and parameters seen in Json format.

  • access: public
string toJson ()
toString (line 415)

Return the current set of options and parameters seen as a string.

  • access: public
string toString ()
toXml (line 476)

Return the current set of options and parameters seen in XML format.

  • access: public
string toXml ()
_addRulesModeGnu (line 805)

Define legal options using the gnu-style format.

  • access: protected
void _addRulesModeGnu (string $rules)
  • string $rules
_addRulesModeZend (line 840)

Define legal options using the Zend-style format.

  • throws: Zend_Console_Getopt_Exception
  • access: protected
void _addRulesModeZend (array $rules)
  • array $rules
_checkParameterType (line 771)

Return true if the parameter is in a valid format for the option $flag.

Throw an exception in most other cases.

  • throws: Zend_Console_Getopt_Exception
  • access: protected
bool _checkParameterType (string $flag, string $param)
  • string $flag
  • string $param
_parseLongOption (line 690)

Parse command-line arguments for a single long option.

A long option is preceded by a double '--' character. Long options may not be clustered.

  • access: protected
void _parseLongOption (mixed &$argv)
  • mixed &$argv
_parseShortOptionCluster (line 710)

Parse command-line arguments for short options.

Short options are those preceded by a single '-' character. Short options may be clustered.

  • access: protected
void _parseShortOptionCluster (mixed &$argv)
  • mixed &$argv
_parseSingleOption (line 725)

Parse command-line arguments for a single option.

  • access: protected
void _parseSingleOption (string $flag,  &$argv, mixed $argv)
  • string $flag
  • mixed $argv
  • &$argv
__get (line 251)

Return the state of the option seen on the command line of the current application invocation. This function returns true, or the parameter to the option, if any. If the option was not given, this function returns null.

The magic __get method works in the context of naming the option as a virtual member of this class.

  • access: protected
string __get (string $key)
  • string $key
__isset (line 262)

Test whether a given option has been seen.

  • access: protected
bool __isset (string $key)
  • string $key
__set (line 279)

Set the value for a given option.

  • access: protected
void __set (string $key, string $value)
  • string $key
  • string $value
__toString (line 293)

Return the current set of options and parameters seen as a string.

  • access: public
string __toString ()
__unset (line 304)

Unset an option.

  • access: public
void __unset (string $key)
  • string $key
Class Constants
CONFIG_DASHDASH = 'dashDash' (line 158)
CONFIG_IGNORECASE = 'ignoreCase' (line 159)
CONFIG_RULEMODE = 'ruleMode' (line 157)

These are constants for optional behavior of this class.

ruleMode is either 'zend' or 'gnu' or a user-defined mode. dashDash is true if '--' signifies the end of command-line options. ignoreCase is true if '--opt' and '--OPT' are implicitly synonyms.

MODE_GNU = 'gnu' (line 139)
MODE_ZEND = 'zend' (line 138)

The options for a given application can be in multiple formats.

modeGnu is for traditional 'ab:c:' style getopt format. modeZend is for a more structured format.

PARAM_OPTIONAL = '-' (line 146)
PARAM_REQUIRED = '=' (line 145)

Constant tokens for various symbols used in the mode_zend rule format.

TYPE_INTEGER = 'i' (line 149)
TYPE_STRING = 's' (line 147)
TYPE_WORD = 'w' (line 148)

Documentation generated on Sun, 27 May 2007 23:24:25 -0700 by phpDocumentor 1.3.2