<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 15103 -->
<!-- Reviewed: no -->
<sect1 id="zend.console.getopt.introduction">
    <title>Introduction</title>

    <para>
        La classe <classname>Zend_Console_Getopt</classname> aide les applications lancées en ligne
        de commande à analyser les options et arguments.
    </para>

    <para>
        Les utilisateurs peuvent spécifier des arguments en ligne de commande quand ils
        exécutent votre application. Ces arguments ont du sens dans l'application : changer son
        comportement, choisir des ressources, ou spécifier des paramètres. Beaucoup d'options ont
        une signification usuelle, par exemple "<code>--verbose</code>" permet la production
        d'informations supplémentaires dans beaucoup d'applications. D'autres options peuvent avoir
        un sens qui est différent pour chaque application. Par exemple, "-c" prend des sens
        différents lorsqu'il est utilisé dans <command>grep</command>, <command>ls</command>, et
        <command>tar</command>.
    </para>

    <para>
        Nous avons ci-dessous quelques définitions de termes. L'usage commun des termes
        varie, mais cette documentation utilisera les définitions ci-dessous.
    </para>

    <itemizedlist>
        <listitem>
            <para>
                "<code>argument</code>" : une chaîne de caractères (<code>string</code>) qui
                apparaît dans la ligne de commande après le nom de la commande. Les arguments
                peuvent être des options ou bien peut apparaître sans option, appeler des
                ressources sur lesquelles la commande agit.
            </para>
        </listitem>

        <listitem>
            <para>
                "<code>option</code>" : un argument qui signifie que la commande va changer
                son comportement par défaut d'une manière quelconque.
            </para>
        </listitem>

        <listitem>
            <para>
                "<code>flag</code>" (drapeau) : la première partie d'une option, identifie le
                but de l'option. Un drapeau est précédé conventionnellement par un ou deux tirets
                ("<code>-</code>" or "<code>--</code>"). Un drapeau court comporte un caractère
                unique. Un drapeau long est une chaîne de plusieurs caractères. Un tiret simple
                précède un drapeau court ou un groupe de drapeaux courts. Un tiret double précède
                un drapeau long. Les drapeaux longs ne peuvent pas être groupés.
            </para>
        </listitem>

        <listitem>
            <para>
                "<code>parameter</code>" (paramètre) : la seconde partie d'une option ; une
                donnée qui peut accompagner un drapeau, si c'est applicable à l'option donnée. Par
                exemple, beaucoup de commandes acceptent "<code>--verbose</code>", mais typiquement
                cette option n'a aucun paramètre. Cependant, une option comme "<code>--user</code>
                a presque toujours besoin d'un paramètre à sa suite.
            </para>
            <para>
                Un paramètre peut être donné comme un argument séparé après un argument de
                drapeau, ou comme faisant partie de la même chaîne de caractères, séparé du drapeau
                par le symbole égal ("<code>=</code>"). La dernière forme est autorisée seulement
                avec des drapeaux longs. Par exemple, <code>-u username</code>, <code>--user
                username</code>, et <code>--user=username</code> sont des formats supportés par
                <classname>Zend_Console_Getopt</classname>.
            </para>
        </listitem>

        <listitem>
            <para>
                "cluster" (groupe) : les drapeaux courts peuvent être combinés dans une
                chaîne de caractère unique précédée par un tiret simple. Par exemple, "
                <command>ls -1str</command>" emploie un groupe de quatre drapeaux courts. Cette
                commande est équivalente à "
                <command>ls -1 -s -t -r</command>". Seuls les drapeaux courts peuvent être groupés.
                Vous ne pouvez pas faire un groupe de drapeaux longs.
            </para>
        </listitem>
    </itemizedlist>

    <para>
        Par exemple, dans "<code>mysql --user=root mabase</code>", "<code>mysql</code>" est
        la <emphasis>commande</emphasis>, "<code>--user=root</code>" est une
        <emphasis>option</emphasis>, "<code>--user</code>" est un <emphasis>drapeau</emphasis>,
        "<code>root</code>" est un <emphasis>paramètre</emphasis> de l'option, et
        "<code>mabase</code>" est un argument mais pas une option dans notre définition.
    </para>

    <para>
        <classname>Zend_Console_Getopt</classname> fournit une interface pour déclarer quels
        drapeaux sont valides pour votre application, produit une erreur et un message s'ils
        emploient un drapeau invalide, et transmet à votre application les drapeaux spécifiés
        par l'utilisateur.
    </para>

    <note>
        <title><code>Getopt</code> n'est pas une application framework</title>

        <para>
            <classname>Zend_Console_Getopt</classname> <emphasis>n'</emphasis>interprète
            <emphasis>pas</emphasis> le sens des drapeaux ou des paramètres, cette classe n'exécute
            pas non plus de processus d'application ou n'invoque pas le code d'application. Vous
            devez implémenter ces actions dans votre propre code d'application. Vous pouvez
            utiliser la classe <classname>Zend_Console_Getopt</classname> pour analyser la ligne
            d'instruction et fournir des méthodes orientées objet pour savoir quelles options ont
            été données par un utilisateur, mais le code pour utiliser ces données pour appeler les
            parties de votre application devra être dans une autre classe PHP.
        </para>
    </note>

    <para>
        Les sections suivantes décrivent l'utilisation de
        <classname>Zend_Console_Getopt</classname>.
    </para>
</sect1>
