TigerZF
🌐Español

23.2. Declaración de reglas de Getopt

El constructor de la clase Zend_Console_Getopt toma de uno a tres argumentos. El primer argumento declara qué opciones admite su aplicación. Esta clase admite formas de sintaxis alternativas para declarar las opciones. Consulte las secciones siguientes para conocer el formato y el uso de estas formas de sintaxis.

El constructor toma dos argumentos más, ambos opcionales. El segundo argumento puede contener los argumentos de línea de comandos. Por defecto es $_SERVER['argv'].

El tercer argumento del constructor puede contener opciones de configuración para personalizar el comportamiento de Zend_Console_Getopt. Consulte Adding Configuration para conocer las opciones disponibles.

23.2.1. Declaración de opciones con la sintaxis corta

Zend_Console_Getopt admite una sintaxis compacta similar a la utilizada por GNU Getopt (véase http://www.gnu.org/software/libc/manual/html_node/Getopt.html. Esta sintaxis solo admite indicadores de un único carácter. En una única cadena, escriba cada una de las letras que corresponden a los indicadores admitidos por su aplicación. Una letra seguida de un carácter de dos puntos (:) indica un indicador que requiere un parámetro.

Ejemplo 23.1. Uso de la sintaxis corta

$opts = new Zend_Console_Getopt('abp:');

El ejemplo anterior muestra el uso de Zend_Console_Getopt para declarar que las opciones se pueden dar como -a, -b, o -p. Este último indicador requiere un parámetro.

La sintaxis corta se limita a indicadores de un único carácter. Los alias, los tipos de parámetro y las cadenas de ayuda no son compatibles en la sintaxis corta.

23.2.2. Declaración de opciones con la sintaxis larga

También está disponible una sintaxis diferente con más funciones. Esta sintaxis le permite especificar alias para los indicadores, tipos de parámetros de opción, y también cadenas de ayuda para describir el uso al usuario. En lugar de la única cadena utilizada en la sintaxis corta para declarar las opciones, la sintaxis larga usa un array asociativo como primer argumento del constructor.

La clave de cada elemento del array asociativo es una cadena con un formato que nombra el indicador, con cualquier alias, separados por el símbolo de barra vertical ("|"). Después de esta serie de alias de indicadores, si la opción requiere un parámetro, hay un símbolo de igual ("=") con una letra que representa el tipo del parámetro:

  • "=s" para un parámetro de tipo cadena

  • "=w" para un parámetro de tipo palabra (una cadena que no contiene espacios en blanco)

  • "=i" para un parámetro de tipo entero

Si el parámetro es opcional, use un guion ("-") en lugar del símbolo de igual.

El valor de cada elemento en el array asociativo es una cadena de ayuda para describir a un usuario cómo utilizar su programa.

Ejemplo 23.2. Uso de la sintaxis larga

$opts = new Zend_Console_Getopt(
  array(
    'apple|a'    => 'apple option, with no parameter',
    'banana|b=i' => 'banana option, with required integer parameter',
    'pear|p-s'   => 'pear option, with optional string parameter'
  )
);

En la declaración de ejemplo anterior, hay tres opciones. --apple y -a son alias entre sí, y la opción no toma ningún parámetro. --banana y -b son alias entre sí, y la opción toma un parámetro entero obligatorio. Por último, --pear y -p son alias entre sí, y la opción puede tomar un parámetro de tipo cadena opcional.