Zend_Console_Getopt-Rules.xml 5.9 KB

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