286. Class

286.1. Zend\Console\Getopt

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.

286.1.1. Methods

286.1.1.1. __construct

__construct()

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.

Parameters:
  • array
  • array
  • array
Throws ExceptionInvalidArgumentException:
 

286.1.1.2. __get

__get()

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.

Parameters:string
Return type:string

286.1.1.3. __isset

__isset()

Test whether a given option has been seen.

Parameters:string
Return type:bool

286.1.1.4. __set

__set()

Set the value for a given option.

Parameters:
  • string
  • string
Return type:

void

286.1.1.5. __toString

__toString()

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

Return type:string

286.1.1.6. __unset

__unset()

Unset an option.

Parameters:string
Return type:void

286.1.1.7. addArguments

addArguments()

Define additional command-line arguments. These are appended to those defined when the constructor was called.

Parameters:array
Throws ZendConsoleExceptionInvalidArgumentException:
 When not given an array as parameter
Return type:ZendConsoleGetopt Provides a fluent interface

286.1.1.8. setArguments

setArguments()

Define full set of command-line arguments. These replace any currently defined.

Parameters:array
Throws ZendConsoleExceptionInvalidArgumentException:
 When not given an array as parameter
Return type:ZendConsoleGetopt Provides a fluent interface

286.1.1.9. setOptions

setOptions()

Define multiple configuration options from an associative array. These are not program options, but properties to configure the behavior of Zend_Console_Getopt.

Parameters:array
Return type:ZendConsoleGetopt Provides a fluent interface

286.1.1.10. setOption

setOption()

Define one configuration option as a key/value pair. These are not program options, but properties to configure the behavior of Zend_Console_Getopt.

Parameters:
  • string
  • string
Return type:

ZendConsoleGetopt Provides a fluent interface

286.1.1.11. addRules

addRules()

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

Parameters:array
Return type:ZendConsoleGetopt Provides a fluent interface

286.1.1.12. toString

toString()

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

Return type:string

286.1.1.13. toArray

toArray()

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.

Return type:array

286.1.1.14. toJson

toJson()

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

Return type:string

286.1.1.15. toXml

toXml()

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

Return type:string

286.1.1.16. getOptions

getOptions()

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

Return type:array

286.1.1.17. getOption

getOption()

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.

Parameters:string
Return type:mixed

286.1.1.18. getRemainingArgs

getRemainingArgs()

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

Return type:array

286.1.1.19. getArguments

getArguments()

286.1.1.20. getUsageMessage

getUsageMessage()

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.

Return type:string

286.1.1.21. setAliases

setAliases()

Define aliases for options.

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

Parameters:array
Throws ZendConsoleExceptionExceptionInterface:
 
Return type:ZendConsoleGetopt Provides a fluent interface

286.1.1.22. setHelp

setHelp()

Define help messages for options.

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

Parameters:array
Return type:ZendConsoleGetopt Provides a fluent interface

286.1.1.23. parse

parse()

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

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

Return type:ZendConsoleGetopt|null Provides a fluent interface

286.1.1.24. _parseLongOption

_parseLongOption()

Parse command-line arguments for a single long option. A long option is preceded by a double ‘–’ character. Long options may not be clustered.

Parameters:mixed
Return type:void

286.1.1.25. _parseShortOptionCluster

_parseShortOptionCluster()

Parse command-line arguments for short options. Short options are those preceded by a single ‘-‘ character. Short options may be clustered.

Parameters:mixed
Return type:void

286.1.1.26. _parseSingleOption

_parseSingleOption()

Parse command-line arguments for a single option.

Parameters:
  • string
  • mixed
Throws ZendConsoleExceptionExceptionInterface:
 
Return type:

void

286.1.1.27. _setNumericOptionValue

_setNumericOptionValue()

Set given value as value of numeric option

Throw runtime exception if this action is deny by configuration or no one numeric option handlers is defined

Parameters:int
Throws ExceptionRuntimeException:
 
Return type:void

286.1.1.28. _setSingleOptionValue

_setSingleOptionValue()

Add relative to options’ flag value

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

Parameters:
  • string
  • string
Return type:

null

286.1.1.29. _setBooleanFlagValue

_setBooleanFlagValue()

Set TRUE value to given flag, if this option does not exist yet In other case increase value to show count of flags’ usage

Parameters:string
Return type:null

286.1.1.30. _checkParameterType

_checkParameterType()

Return true if the parameter is in a valid format for the option $flag. Throw an exception in most other cases.

Parameters:
  • string
  • string
Throws ZendConsoleExceptionExceptionInterface:
 
Return type:

bool

286.1.1.31. _addRulesModeGnu

_addRulesModeGnu()

Define legal options using the gnu-style format.

Parameters:string
Return type:void

286.1.1.32. _addRulesModeZend

_addRulesModeZend()

Define legal options using the Zend-style format.

Parameters:array
Throws ZendConsoleExceptionExceptionInterface:
 
Return type:void

286.1.2. Constants

286.1.2.1. MODE_ZEND

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.

286.1.2.2. MODE_GNU

286.1.2.3. PARAM_REQUIRED

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

286.1.2.4. PARAM_OPTIONAL

286.1.2.5. TYPE_STRING

286.1.2.6. TYPE_WORD

286.1.2.7. TYPE_INTEGER

286.1.2.8. TYPE_NUMERIC_FLAG

286.1.2.9. CONFIG_RULEMODE

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. parseAll is true if all options on the command line should be parsed, regardless of whether an argument appears before them.

286.1.2.10. CONFIG_DASHDASH

286.1.2.11. CONFIG_IGNORECASE

286.1.2.12. CONFIG_PARSEALL

286.1.2.13. CONFIG_CUMULATIVE_PARAMETERS

286.1.2.14. CONFIG_CUMULATIVE_FLAGS

286.1.2.15. CONFIG_PARAMETER_SEPARATOR

286.1.2.16. CONFIG_FREEFORM_FLAGS

286.1.2.17. CONFIG_NUMERIC_FLAGS

Project Versions

Table Of Contents

Previous topic

285. Class

Next topic

287. Class

This Page