TigerZF
🌐Español

Capítulo 23. Zend_Console_Getopt

23.1. Introducción

La clase Zend_Console_Getopt ayuda a las aplicaciones de línea de comandos a analizar sus opciones y argumentos.

Los usuarios pueden especificar argumentos de línea de comandos cuando ejecutan su aplicación. Estos argumentos tienen un significado para la aplicación, ya sea para cambiar el comportamiento de algún modo, elegir recursos, o especificar parámetros. Muchas opciones han desarrollado un significado habitual, por ejemplo --verbose habilita salida adicional en muchas aplicaciones. Otras opciones pueden tener un significado que es diferente para cada aplicación. Por ejemplo, -c habilita características distintas en grep, ls, y tar.

A continuación se muestran algunas definiciones de términos. El uso común de los términos varía, pero esta documentación usará las definiciones que se dan a continuación.

  • "argumento": una cadena que aparece en la línea de comandos a continuación del nombre del comando. Los argumentos pueden ser opciones o bien pueden aparecer sin una opción, para nombrar recursos sobre los que opera el comando.

  • "opción": un argumento que indica que el comando debe cambiar su comportamiento predeterminado de algún modo.

  • "flag" (indicador): la primera parte de una opción, identifica el propósito de la opción. Un flag va precedido convencionalmente por uno o dos guiones (- o --). Un solo guión precede a un flag de un solo carácter o a un conjunto de flags de un solo carácter. Un doble guión precede a un flag multicarácter. Los flags largos no pueden agruparse.

  • "parámetro": la parte secundaria de una opción; un valor de datos que puede acompañar a un flag, si es aplicable a la opción dada. Por ejemplo, muchos comandos aceptan una opción --verbose, pero típicamente esta opción no tiene parámetro. Sin embargo, una opción como --user casi siempre requiere un parámetro a continuación.

    Un parámetro puede darse como un argumento independiente a continuación de un argumento flag, o como parte de la misma cadena de argumento, separado del flag por un símbolo igual (=). Esta última forma solo es admitida por flags largos. Por ejemplo, -u username, --user username, y --user=username son formas admitidas por Zend_Console_Getopt.

  • "cluster" (agrupación): múltiples flags de un solo carácter combinados en un único argumento de cadena y precedidos por un solo guión. Por ejemplo, "ls -1str" usa un cluster de cuatro flags cortos. Este comando es equivalente a "ls -1 -s -t -r". Solo los flags de un solo carácter pueden agruparse en un cluster. No se puede hacer un cluster de flags largos.

Por ejemplo, en mysql --user=root mydatabase, mysql es un comando, --user=root es una opción, --user es un flag, root es un parámetro de la opción, y mydatabase es un argumento pero no una opción según nuestra definición.

Zend_Console_Getopt proporciona una interfaz para declarar qué flags son válidos para su aplicación, mostrar un mensaje de error y de uso si se usa un flag inválido, e informar a su código de aplicación qué flags especificó el usuario.

[Note] Getopt no es un framework de aplicaciones

Zend_Console_Getopt no interpreta el significado de los flags y parámetros, ni esta clase implementa el flujo de trabajo de la aplicación ni invoca código de aplicación. Usted debe implementar esas acciones en el código de su propia aplicación. Puede usar la clase Zend_Console_Getopt para analizar la línea de comandos y proporcionar métodos orientados a objetos para consultar qué opciones dio un usuario, pero el código que use esta información para invocar partes de su aplicación debería estar en otra clase PHP.

Las siguientes secciones describen el uso de Zend_Console_Getopt.