Puede añadir más reglas de opciones además de las especificadas
en el constructor de Zend_Console_Getopt, usando el
método addRules(). El argumento de
addRules() es el mismo que el primer argumento del
constructor de la clase. Es una cadena en el formato de la
especificación de opciones de sintaxis corta, o bien un array
asociativo en el formato de una especificación de opciones de sintaxis larga.
Consulte Declarar reglas de Getopt
para más detalles sobre la sintaxis para especificar opciones.
Ejemplo 23.7. Uso de addRules()
$opts = new Zend_Console_Getopt('abp:');
$opts->addRules(
array(
'verbose|v' => 'Print verbose output'
)
);
El ejemplo anterior muestra cómo añadir la opción --verbose
con un alias -v a un conjunto de opciones
definidas en la llamada al constructor. Observe que puede mezclar
opciones de formato corto y opciones de formato largo en la misma instancia
de Zend_Console_Getopt.
Además de especificar las cadenas de ayuda al declarar reglas de opciones
en el formato largo, puede asociar cadenas de ayuda
con las reglas de opciones usando el método setHelp().
El argumento del método setHelp() es un array
asociativo, en el que la clave es un flag y el valor es una
cadena de ayuda correspondiente.
Ejemplo 23.8. Uso de setHelp()
$opts = new Zend_Console_Getopt('abp:');
$opts->setHelp(
array(
'a' => 'apple option, with no parameter',
'b' => 'banana option, with required integer parameter',
'p' => 'pear option, with optional string parameter'
)
);
Si declaró opciones con alias, puede usar cualquiera de los alias como clave del array asociativo.
El método setHelp() es la única forma de definir cadenas
de ayuda si declaró las opciones usando la sintaxis corta.
Puede declarar alias para las opciones usando el método setAliases().
El argumento es un array asociativo, cuya clave es
una cadena de flag declarada previamente, y cuyo valor es un nuevo
alias para ese flag. Estos alias se combinan con los alias
existentes. En otras palabras, los alias que declaró anteriormente
siguen en vigor.
Un alias solo puede declararse una vez. Si intenta redefinir
un alias, se lanza una Zend_Console_Getopt_Exception.
Ejemplo 23.9. Uso de setAliases()
$opts = new Zend_Console_Getopt('abp:');
$opts->setAliases(
array(
'a' => 'apple',
'a' => 'apfel',
'p' => 'pear'
)
);
En el ejemplo anterior, tras declarar estos alias, -a, --apple y --apfel son alias entre sí. Del mismo modo, -p y --pear son alias entre sí.
El método setAliases() es la única forma de definir alias
si declaró las opciones usando la sintaxis corta.
Por defecto, Zend_Console_Getopt usa
$_SERVER['argv'] como el array de argumentos de línea de
comandos a analizar. Alternativamente, puede especificar el array de
argumentos como segundo argumento del constructor. Finalmente, puede
añadir más argumentos a los ya usados mediante el
método addArguments(), o puede reemplazar el array
actual de argumentos usando el método setArguments().
En ambos casos, el parámetro de estos métodos es un simple array de
cadenas. El primer método añade el array a los argumentos
actuales, y el segundo método sustituye el array por los
argumentos actuales.
Ejemplo 23.10. Uso de addArguments() y setArguments()
// By default, the constructor uses $_SERVER['argv']
$opts = new Zend_Console_Getopt('abp:');
// Append an array to the existing arguments
$opts->addArguments(array('-a', '-p', 'p_parameter', 'non_option_arg'));
// Substitute a new array for the existing arguments
$opts->setArguments(array('-a', '-p', 'p_parameter', 'non_option_arg'));
El tercer parámetro del constructor de Zend_Console_Getopt
es un array de opciones de configuración que afectan
al comportamiento de la instancia de objeto devuelta. También puede
especificar opciones de configuración usando el método setOptions(),
o puede establecer una opción individual usando el
método setOption().
![]() |
Aclarando el término "opción" |
|---|---|
El término "opción" se usa para la configuración de la
clase |
Las opciones actualmente admitidas tienen definiciones de constantes en la clase. Las opciones, sus identificadores de constante (con valores literales entre paréntesis) se enumeran a continuación:
Zend_Console_Getopt::CONFIG_DASHDASH("dashDash"), si esTRUE, habilita el flag especial -- para indicar el final de los flags. Los argumentos de línea de comandos posteriores al indicador de doble guion no se interpretan como opciones, incluso si los argumentos comienzan con un guion. Esta opción de configuración esTRUEpor defecto.Zend_Console_Getopt::CONFIG_IGNORECASE("ignoreCase"), si esTRUE, hace que los flags sean alias entre sí si difieren solo en mayúsculas y minúsculas. Es decir, -a y -A se considerarán flags sinónimos. Esta opción de configuración esFALSEpor defecto.Zend_Console_Getopt::CONFIG_RULEMODE("ruleMode") puede tener los valoresZend_Console_Getopt::MODE_ZEND("zend") yZend_Console_Getopt::MODE_GNU("gnu"). No debería ser necesario usar esta opción a menos que extienda la clase con formas de sintaxis adicionales. Los dos modos admitidos en la clase baseZend_Console_Getoptno son ambiguos. Si el especificador es una cadena, la clase asumeMODE_GNU, de lo contrario asumeMODE_ZEND. Pero si extiende la clase y añade más formas de sintaxis, puede necesitar especificar el modo usando esta opción.
Pueden añadirse más opciones de configuración como futuras mejoras de esta clase.
Los dos argumentos del método setOption() son
un nombre de opción de configuración y un valor de opción.
Ejemplo 23.11. Uso de setOption()
$opts = new Zend_Console_Getopt('abp:');
$opts->setOption('ignoreCase', true);
El argumento del método setOptions() es
un array asociativo. Las claves de este array son los nombres de las opciones
de configuración, y los valores son los valores de configuración.
Este es también el formato de array usado en el constructor de la clase.
Los valores de configuración que especifique se combinan con la
configuración actual; no es necesario listar todas las opciones.
Ejemplo 23.12. Uso de setOptions()
$opts = new Zend_Console_Getopt('abp:');
$opts->setOptions(
array(
'ignoreCase' => true,
'dashDash' => false
)
);
![[Note]](images/note.png)