__construct()
__get()
__isset()
__set()
__toString()
__unset()
addArguments()
addRules()
getArguments()
getOption()
getOptions()
getRemainingArgs()
getUsageMessage()
parse()
setAliases()
setArguments()
setHelp()
setOption()
setOptions()
toArray()
toJson()
toString()
toXml()
_addRulesModeGnu()
_addRulesModeZend()
_checkParameterType()
_parseLongOption()
_parseShortOptionCluster()
_parseSingleOption()
_setBooleanFlagValue()
_setNumericOptionValue()
_setSingleOptionValue()
$argv
$getoptConfig
$options
$parsed
$progname
$remainingArgs
$ruleMap
$rules
CONFIG_CUMULATIVE_FLAGS
CONFIG_CUMULATIVE_PARAMETERS
CONFIG_DASHDASH
CONFIG_FREEFORM_FLAGS
CONFIG_IGNORECASE
CONFIG_NUMERIC_FLAGS
CONFIG_PARAMETER_SEPARATOR
CONFIG_PARSEALL
CONFIG_RULEMODE
MODE_GNU
MODE_ZEND
PARAM_OPTIONAL
PARAM_REQUIRED
TYPE_INTEGER
TYPE_NUMERIC_FLAG
TYPE_STRING
TYPE_WORD
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:
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.
todo | Handle flags that implicitly print usage message, e.g. --help |
---|---|
todo | Enable user to specify header and footer content in the help message. |
todo | Feature request to handle option interdependencies. e.g. if -b is specified, -a must be specified or else the usage is invalid. |
todo | Feature request to implement callbacks. e.g. if -a is specified, run function 'handleOptionA'(). |
__construct(array $rules, array $argv, array $getoptConfig)
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.
array
array
array
\Zend\Console\Exception\InvalidArgumentException |
---|
__get(string $key) : string
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.
string
string
__isset(string $key) : bool
string
bool
__set(string $key, string $value) : void
string
string
__toString() : string
string
__unset(string $key) : void
string
addArguments(array $argv) : \Zend\Console\Getopt
These are appended to those defined when the constructor was called.
array
\Zend\Console\Exception\InvalidArgumentException |
When not given an array as parameter |
---|
\Zend\Console\Getopt
Provides a fluent interfaceaddRules(array $rules) : \Zend\Console\Getopt
These are appended to the rules defined when the constructor was called.
array
\Zend\Console\Getopt
Provides a fluent interfacegetArguments()
getOption(string $flag) : mixed
This function returns true, or the parameter value to the option, if any. If the option was not given, this function returns false.
string
mixed
getOptions() : array
array
getRemainingArgs() : array
array
getUsageMessage() : string
Note that this usage information is provided in most Exceptions generated by this class.
string
parse() : \Zend\Console\Getopt | null
Also find option parameters, and remaining arguments after all options have been parsed.
\Zend\Console\Getopt
null
Provides a fluent interfacesetAliases(array $aliasMap) : \Zend\Console\Getopt
The parameter $aliasMap is an associative array mapping option name (short or long) to an alias.
array
\Zend\Console\Exception\ExceptionInterface |
---|
\Zend\Console\Getopt
Provides a fluent interfacesetArguments(array $argv) : \Zend\Console\Getopt
These replace any currently defined.
array
\Zend\Console\Exception\InvalidArgumentException |
When not given an array as parameter |
---|
\Zend\Console\Getopt
Provides a fluent interfacesetHelp(array $helpMap) : \Zend\Console\Getopt
The parameter $helpMap is an associative array mapping option name (short or long) to the help string.
array
\Zend\Console\Getopt
Provides a fluent interfacesetOption(string $configKey, string $configValue) : \Zend\Console\Getopt
These are not program options, but properties to configure the behavior of Zend\Console\Getopt.
string
string
\Zend\Console\Getopt
Provides a fluent interfacesetOptions(array $getoptConfig) : \Zend\Console\Getopt
These are not program options, but properties to configure the behavior of Zend\Console\Getopt.
array
\Zend\Console\Getopt
Provides a fluent interfacetoArray() : array
Clusters have been expanded, and option aliases have been mapped to their primary option names.
array
toJson() : string
string
toString() : string
string
toXml() : string
string
_addRulesModeGnu(string $rules) : void
string
_addRulesModeZend(array $rules) : void
_checkParameterType(string $flag, string $param) : bool
Throw an exception in most other cases.
string
string
\Zend\Console\Exception\ExceptionInterface |
---|
bool
_parseLongOption(mixed $argv) : void
A long option is preceded by a double '--' character. Long options may not be clustered.
mixed
&$argv
_parseShortOptionCluster(mixed $argv) : void
Short options are those preceded by a single '-' character. Short options may be clustered.
mixed
&$argv
_parseSingleOption(string $flag, mixed $argv) : void
_setBooleanFlagValue(string $flag) : null
string
null
_setNumericOptionValue(int $value) : void
Throw runtime exception if this action is deny by configuration or no one numeric option handlers is defined
int
\Zend\Console\Exception\RuntimeException |
---|
_setSingleOptionValue(string $flag, string $value) : null
If options list already has current flag as key and parser should follow cumulative params by configuration, we should to add new param to array, not to overwrite
string
string
null
$argv : array
$getoptConfig
$parsed : bool
$progname : string
$remainingArgs : array
$ruleMap : array
$rules : array
CONFIG_CUMULATIVE_FLAGS
CONFIG_CUMULATIVE_PARAMETERS
CONFIG_DASHDASH
CONFIG_FREEFORM_FLAGS
CONFIG_IGNORECASE
CONFIG_NUMERIC_FLAGS
CONFIG_PARAMETER_SEPARATOR
CONFIG_PARSEALL
CONFIG_RULEMODE
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. parseAll is true if all options on the command line should be parsed, regardless of whether an argument appears before them.
MODE_GNU
MODE_ZEND
modeGnu is for traditional 'ab:c:' style getopt format. modeZend is for a more structured format.
PARAM_OPTIONAL
PARAM_REQUIRED
TYPE_INTEGER
TYPE_NUMERIC_FLAG
TYPE_STRING
TYPE_WORD