<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 14978 -->
<!-- Reviewed: no -->
<sect1 id="zend.console.getopt.introduction">
    <title>Einführung</title>
    <para>
        Die <classname>Zend_Console_Getopt</classname> Klasse hilft Kommandozeilen Anwendungen
        Ihre Optionen und Argumente zu Analysieren.
    </para>
    <para>
        Benutzer können Kommandozeilen Argumente definieren wenn die Anwendung
        ausgeführt wird. Diese Argumente haben für die Anwendung die Bedeutung,
        das Verhalten in einem bestimmten Weg zu Ändern oder Ressourcen auszuwählen,
        oder Parameter zu definieren. Viele Optionen haben eine einheitliche Bedeutung
        entwickelt wie zum Beispiel "<code>--verbose</code>" welches die Ausgabe von
        zusätzlicher Ausgabe für viele Anwendungen erlaubt. Andere Optionen haben auch
        eine Bedeutung die in jeder Anwendung unterschiedlich ist. Zum Beispiel
        erlaubt "<code>-c</code>" unterschiedliche Features in <command>grep</command>,
        <command>ls</command>, und <command>tar</command>.
     </para>
    <para>
        Anbei sind einige Definitionen von Ausdrücken. Die übliche Verwendung der
        Ausdrücke variiert, aber diese Dokumentation wird die anbei beschriebenen
        Definitionen verwenden.
    </para>
    <itemizedlist>
        <listitem>
            <para>
                "Argument": eine Zeichenkette die in der Kommandozeile dem
                Namen des Kommandos folgt. Argumente können Optionen sein, oder auch
                ohne Option vorkommen, um eine Ressource zu benennen die das
                Kommando verwendet.
            </para>
        </listitem>
        <listitem>
            <para>
                "Option": ist ein Argument das andeutet das das Kommando sein
                Verhalten in einem bestimmten Weg verändern soll.
            </para>
        </listitem>
        <listitem>
            <para>
                "Flag": Der erste Teil einer Option, identifiziert den Zweck
                der Option. Einem Flag werden normalerweise ein oder zwei Bindestriche
                vorangestellt ("<code>-</code>" oder "<code>--</code>").
                Ein einzelner  wird einem Einzel-Zeichen Flag vorangestellt oder einem
                Verbund von Einzel-Zeichen Flags. Ein doppelter Bindestrich wird einem
                Mehr-Zeichen Flag vorangestellt. Lange Flags können nicht gebündelt werden.
            </para>
        </listitem>
        <listitem>
            <para>
                "Parameter": Der zweite Teil einer Option; Ein Datenwert der ein Flag
                begleitet, wenn er zu einer Option passt. Zum Beispiel kann ein Kommando
                eine "<code>--verbose</code>" Option akzeptieren, aber typischerweise
                hat diese Option keine Parameter. Trotzdem wird eine Option wie
                "<code>--user</code>" immer einen nachfolgenden Parameter benötigen.
            </para>
            <para>
                Ein Parameter kann als separates Argument angegeben werden der einem
                Flag Argument folgt, oder als Teil der gleichen Zeichenkette des
                Arguments, getrennt vom Flag durch ein Gleichheitszeichen
                ("<code>=</code>"). Die zweite Form wird nur bei langen Flags
                unterstützt. Zum Beispiel, <code>-u username</code>,
                <code>--user username</code>, und <code>--user=username</code>
                sind Formen welche durch <classname>Zend_Console_Getopt</classname>
                unterstützt werden.
            </para>
        </listitem>
        <listitem>
            <para>
                "Verbund": Mehrere Einzel-Zeichen Flags kombiniert in einem
                einzelnen Argument als Zeichenkette und vorangestellt durch einen
                einzelnen Bindestrich. Zum Beispiel "<command>ls -1str</command>"
                benutzt einen Verbund von vier kurzen Flags. Dieses Kommando ist
                identisch mit "<command>ls -1 -s -t -r</command>". Nur
                Einzel-Zeichen Flags können kombiniert werden. Ein Verbund von
                langen Flags kann nicht erstellt werden.
            </para>
        </listitem>
    </itemizedlist>
    <para>
        Zum Beispiel "<code>mysql --user=root mydatabase</code>".
        "<code>mysql</code>" ist ein <emphasis>Kommando</emphasis>,
        "<code>--user=root</code>" ist eine <emphasis>Option</emphasis>,
        "<code>--user</code>" ist ein <emphasis>Flag</emphasis>,
        "<code>root</code>" ist ein <emphasis>Parameter</emphasis> für diese Option
        und "<code>mydatabase</code>" ist ein Argument aber nicht eine Option laut
        unserer Definition.
    </para>
    <para>
        <classname>Zend_Console_Getopt</classname> bietet ein Interface um zu definieren welche
        Flags für die Anwendung gültig sind, das einen Fehler und Benutzungshinweise ausgibt
        wenn ein ungültiges Flag verwendet wird, und dem Code der Anwendung bekanntgibt
        welche Flags der Benutzer definiert hat.
    </para>
    <note>
        <title>Getopt ist kein Framework für eine Anwendung</title>
        <para>
            <classname>Zend_Console_Getopt</classname> kann <emphasis>NICHT</emphasis>
            die Bedeutung der Flags und Parameter interpretieren, noch implementiert
            diese Klasse einen Anwendungsworkflow oder ruft Anwendungscode auf.
            Diese Aktionen müssen im eigenen Anwendungscode integriert werden.
            Die <classname>Zend_Console_Getopt</classname> Klasse kann dazu verwendet werden um
            die Kommandozeile zu analysieren und bietet Objekt-Orientierte Methoden
            für die Abfrage welche Optionen durch den Benutzer angegeben wurden.
            Aber der Code um diese Informationen zu Verwenden und Teile der eigenen
            Anwendung aufzurufen sollten in einer anderen PHP Klasse sein.
        </para>
    </note>
    <para>
        Die folgende Sektion beschreibt die Verwendung von <classname>Zend_Console_Getopt</classname>.
    </para>
</sect1>