1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.console.getopt.rules">
<title>Definieren von Getopt Regeln</title>
<para>
Der Constructor für die <classname>Zend_Console_Getopt</classname> Klasse nimmt ein bis drei
Argumente. Das erste Argument definiert welche Optionen durch die Anwendung unterstützt
werden. Diese Klasse unterstützt alternative Syntaxformen für das definieren der Optionen.
Die nächsten Sektionen geben Auskunft über das Format und die Verwendung dieser
Syntaxformen.
</para>
<para>
Der Constructor nimmt zwei weitere Argumente, welche optional sind. Das zweite Argument kann
Kommandozeilen Argumente enthalten. Sein Standardwert ist
<varname>$_SERVER['argv']</varname>.
</para>
<para>
Das dritte Argument des Constructors kann Konfigurationsoptionen enthalten um das Verhalten
von <classname>Zend_Console_Getopt</classname> anzupassen. Siehe <link
linkend="zend.console.getopt.configuration.config">Konfiguration hinzufügen</link> für
eine Referenz der möglichen Optionen.
</para>
<sect2 id="zend.console.getopt.rules.short">
<title>Optionen mit der kurzen Syntax definieren</title>
<para>
<classname>Zend_Console_Getopt</classname> unterstützt eine kompakte Syntax wie Sie
durch <acronym>GNU</acronym> Getopt verwendet wird (siehe <ulink
url="http://www.gnu.org/software/libc/manual/html_node/Getopt.html">http://www.gnu.org/software/libc/manual/html_node/Getopt.html</ulink>).
Diese Syntax unterstützt nur Einzel-Zeichen Flags. In einer einzelnen Zeichenkette, wird
jeder Buchstabe angegeben der einem Flag entspricht das durch die Anwendung unterstützt
wird. Der Buchstabe, gefolgt von einem Doppelpunkt Zeichen (<emphasis>:</emphasis>)
zeigt ein Flag das einen Parameter benötigt.
</para>
<example id="zend.console.getopt.rules.short.example">
<title>Verwendung der kurzen Syntax</title>
<programlisting language="php"><![CDATA[
$opts = new Zend_Console_Getopt('abp:');
]]></programlisting>
</example>
<para>
Das obige Beispiel zeigt die Verwendung von <classname>Zend_Console_Getopt</classname>
um die Optionen zu definieren die als <command>-a</command>, <command>-b</command>,
oder <command>-p</command> angegeben werden können. Das letzte Flag benötigt
einen Parameter.
</para>
<para>
Die kurze Syntax ist limitiert auf Flags mit einzelnen Zeichen.
Aliase, Parametertypen und Hilfszeichenketten werden in der
kurzen Syntax nicht unterstützt.
</para>
</sect2>
<sect2 id="zend.console.getopt.rules.long">
<title>Optionen mit der langen Syntax definieren</title>
<para>
Eine andere Syntax mit mehr Möglichkeiten ist auch vorhanden. Diese
Syntax ermöglicht es Aliase für Flags, Typen von Optionsparametern
und auch Hilfszeichenkette zu definieren um die Verwendung für den
Benutzer zu beschreiben. Statt einer einzelnen Zeichenkette die in der
kurzen Syntax verwendet wird um die Optionen zu definieren, verwendet
die lange Syntax ein assoziatives Array als erstes Argument für den
Constructor.
</para>
<para>
Der Schlüssel jeden Elements des assoziativen Array ist eine
Zeichenkette mit einem Format dass das Flag benennt, mit jedem Alias,
getrennt durch ein Pipe Symbol ("<emphasis>|</emphasis>"). Dieser Serie von
Flag Aliasen folgende, wenn die Option einen Parameter benötigt, ist
ein Gleichheitszeichen ("<emphasis>=</emphasis>") mit einem Buchstaben der
für den <emphasis>Typ</emphasis> dieses Parameters steht:
</para>
<itemizedlist>
<listitem>
<para>
"<emphasis>=s</emphasis>" für einen Zeichenketten Parameter
</para>
</listitem>
<listitem>
<para>
"<emphasis>=w</emphasis>" für einen Wort Parameter
(eine Zeichenkette die keine Leerzeichen enthält)
</para>
</listitem>
<listitem>
<para>
"<emphasis>=i</emphasis>" für einen Integer Parameter
</para>
</listitem>
</itemizedlist>
<para>
Wenn der Parameter optional ist, kann ein Bindestrich ("<emphasis>-</emphasis>")
statt des Gleichheitszeichens verwendet werden.
</para>
<para>
Der Wert jeden Elements in diesem assiziativen Array ist eine
Hilfszeichenkette um dem Benutzer zu beschreiben wie das Programm
verwendet werden kann.
</para>
<example id="zend.console.getopt.rules.long.example">
<title>Verwendung der langen Syntax</title>
<programlisting language="php"><![CDATA[
$opts = new Zend_Console_Getopt(
array(
'apfel|a' => 'Apfel Option, ohne Parameter',
'banane|b=i' => 'Bananen Option, mit benötigtem Integer Parameter',
'pfirsich|p-s' => 'Pfirsich Option, mit optionalem String Parameter'
)
);
]]></programlisting>
</example>
<para>
In der obigen Beispieldefinition, sind drei Optionen.
<command>--apfel</command> und <command>-a</command> sind Aliase füreinander,
und diese Option nimmt keinen Parameter.
<command>--banane</command> und <command>-b</command> sind Aliase füreinander,
und diese Option nimmt einen notwendigen Integer Parameter.
Letztendlich, <command>--pfirsich</command> und <command>-p</command> sind
Aliase füreinander, und diese Option kann einen Optionalen
Zeichenketten Parameter annehmen.
</para>
</sect2>
</sect1>
|