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 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266
|
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.console.getopt.configuration">
<title>Configurer Zend_Console_Getopt</title>
<sect2 id="zend.console.getopt.configuration.addrules">
<title>Ajouter des règles d'options</title>
<para>
Vous pouvez ajouter de nouvelles règles d'option en complément de celles
indiquées dans le constructeur de <classname>Zend_Console_Getopt</classname>, en
utilisant la méthode <methodname>addRules()</methodname>. L'argument
d'<methodname>addRules()</methodname> est
identique au premier argument du constructeur de classe. C'est soit une chaîne dans le
format d'options de syntaxe courte, soit un tableau associatif dans le format
d'options de syntaxe longue. Voir
<link linkend="zend.console.getopt.rules">"Déclarer les règles Getopt"</link> pour les
détails sur la syntaxe de déclaration des options.
</para>
<example id="zend.console.getopt.configuration.addrules.example">
<title>Utilisation d'addRules()</title>
<programlisting language="php"><![CDATA[
$opts = new Zend_Console_Getopt('abp:');
$opts->addRules(
array(
'verbose|v' => 'Print verbose output'
)
);
]]></programlisting>
</example>
<para>
L'exemple au-dessus montre comment ajouter l'option "<command>--verbose</command>" avec
l'alias "<command>-v</command>" à un ensemble d'options définies dans l'appel au
constructeur. Notez que vous pouvez mélanger des options de syntaxe courte et de
syntaxe longue dans la même instance de <classname>Zend_Console_Getopt</classname>.
</para>
</sect2>
<sect2 id="zend.console.getopt.configuration.addhelp">
<title>Ajouter des messages d'aide</title>
<para>
En plus d'indiquer les messages d'aide en déclarant les règles d'option dans le
long format, vous pouvez associer des messages d'aide aux règles d'option en utilisant
la méthode <methodname>setHelp()</methodname>. L'argument de la méthode
<methodname>setHelp()</methodname> est
un tableau associatif, dans laquelle la clé est un drapeau, et la valeur est le message
d'aide correspondant.
</para>
<example id="zend.console.getopt.configuration.addhelp.example">
<title>Utiliser setHelp()</title>
<programlisting language="php"><![CDATA[
$opts = new Zend_Console_Getopt('abp:');
$opts->setHelp(
array(
'a' => 'option abricot, sans paramètres',
'b' => 'option banane, avec un paramètre entier obligatoire',
'p' => 'option pear, avec un paramètre chaîne de caractères optionel'
)
);
]]></programlisting>
</example>
<para>
Si vous déclarez des options avec des alias, vous pouvez employer n'importe quel
alias comme clé du tableau associatif.
</para>
<para>
La méthode <methodname>setHelp()</methodname> est la seule manière de définir des
messages d'aide si vous déclarez les options en utilisant la syntaxe courte.
</para>
</sect2>
<sect2 id="zend.console.getopt.configuration.addaliases">
<title>Ajouter des alias aux options</title>
<para>
Vous pouvez déclarer des alias pour des options en utilisant la méthode
<methodname>setAliases()</methodname>. L'argument est un tableau associatif, dont la
clé est une chaîne de drapeau déclaré auparavant, et dont la valeur est un nouvel alias
pour ce drapeau. Ces alias sont fusionnés avec tous les alias existants. En d'autres
termes, les alias que vous avez déclarés plus tôt sont toujours actifs.
</para>
<para>
Un alias ne peut être déclaré qu'une seule fois. Si vous essayez de redéfinir un
alias, une <classname>Zend_Console_Getopt_Exception</classname> est levée.
</para>
<example id="zend.console.getopt.configuration.addaliases.example">
<title>Utiliser setAliases()</title>
<programlisting language="php"><![CDATA[
$opts = new Zend_Console_Getopt('abp:');
$opts->setAliases(
array(
'a' => 'apple',
'a' => 'apfel',
'p' => 'pear'
)
);
]]></programlisting>
</example>
<para>
Dans l'exemple ci-dessus, après leurs déclarations, "<command>-a</command>",
"<command>--apple</command>" et "<command>--apfel</command>" sont des alias les un pour
les autres. En outre "<command>-p</command>" et "<command>--pear</command>" sont des
alias l'un pour l'autre.
</para>
<para>
La méthode <methodname>setAliases()</methodname> est la seule manière de définir des
alias si vous déclarez les options en utilisant la syntaxe courte.
</para>
</sect2>
<sect2 id="zend.console.getopt.configuration.addargs">
<title>Ajouter des listes d'arguments</title>
<para>
Par défaut, <classname>Zend_Console_Getopt</classname> utilise
<varname>$_SERVER['argv']</varname> comme tableau des arguments de ligne de commande à
analyser. De manière alternative, vous pouvez indiquer le tableau d'arguments comme
deuxième argument de constructeur. En conclusion, vous pouvez ajouter de nouveaux
d'arguments à ceux déjà utilisés en utilisant la méthode
<methodname>addArguments()</methodname>, ou vous pouvez remplacer le choix courant
d'arguments en utilisant la méthode <methodname>setArguments()</methodname>.
Dans les deux cas, le paramètre de ces méthodes est un
simple tableau de chaîne. L'ancienne méthode ajoutait le tableau aux arguments
courants, et la nouvelle méthode substitue le tableau aux arguments courants.
</para>
<example id="zend.console.getopt.configuration.addargs.example">
<title>Utilisation de addArguments() et setArguments()</title>
<programlisting language="php"><![CDATA[
// Par défaut, le constructeur utilise $_SERVER['argv']
$opts = new Zend_Console_Getopt('abp:');
// Ajoute un tableau aux arguments existants
$opts->addArguments(array('-a', '-p', 'p_parameter', 'non_option_arg'));
// Remplace les arguments existants par un nouveau tableau
$opts->setArguments(array('-a', '-p', 'p_parameter', 'non_option_arg'));
]]></programlisting>
</example>
</sect2>
<sect2 id="zend.console.getopt.configuration.config">
<title>Ajouter une configuration</title>
<para>
Le troisième paramètre du constructeur de <classname>Zend_Console_Getopt</classname>
est un tableau d'options de configuration qui affectent le comportement de l'instance
d'objet retournée. Vous pouvez également indiquer des options de configuration en
utilisant la méthode <methodname>setOptions()</methodname>, ou vous pouvez placer une
option individuelle en utilisant la méthode <methodname>setOption()</methodname>.
</para>
<note>
<title>Clarifier le terme "option"</title>
<para>
Le terme "option" est employé pour la configuration de la classe
<classname>Zend_Console_Getopt</classname> afin de correspondre à la terminologie
utilisée dans le reste de Zend Framework. Ce n'est pas la même chose que les
options de la ligne de commande qui sont analysées par la classe
<classname>Zend_Console_Getopt</classname>.
</para>
</note>
<para>
Les options actuellement supportées ont des définitions de constantes dans la
classe. Les options, leurs constantes (avec des valeurs littérales entre parenthèses)
sont énumérées ci-dessous :
</para>
<itemizedlist>
<listitem>
<para>
<constant>Zend_Console_Getopt::CONFIG_DASHDASH</constant>
("dashDash"), si <constant>TRUE</constant>, utilise le drapeau spécial
"<command>--</command>" pour signifier la fin des drapeaux. Les arguments de
la ligne de commande suivant le double-tiret ne sont pas interprétées comme
options, même si les arguments commencent par un tiret. Cette option de
configuration vaut <constant>TRUE</constant> par défaut.
</para>
</listitem>
<listitem>
<para>
<constant>Zend_Console_Getopt::CONFIG_IGNORECASE</constant>
("ignoreCase"), si <constant>TRUE</constant>, fait correspondre
des alias même s'ils différent en terme de casse. C'est-à-dire,
"<command>-a</command>" et "<command>-A</command>" seront considérés comme
des synonymes. Cette option de
configuration vaut <constant>FALSE</constant> par défaut.
</para>
</listitem>
<listitem>
<para>
<constant>Zend_Console_Getopt::CONFIG_RULEMODE</constant>
("ruleMode") peut avoir les valeurs
<constant>Zend_Console_Getopt::MODE_ZEND</constant> ("zend") ou
<constant>Zend_Console_Getopt::MODE_GNU</constant> ("gnu"). Il
ne devrait pas être nécessaire d'employer cette option à moins que vous
n'étendiez la classe avec les formes additionnelles de syntaxe. Les deux modes
supportés dans la classe <classname>Zend_Console_Getopt</classname> de base
sont sans équivoque. Si le spécificateur est une chaîne de caractère, la classe
passe en <constant>MODE_GNU</constant>, autrement elle est en
<constant>MODE_ZEND</constant>.
Mais si vous étendez la classe et ajoutez de nouvelles formes de syntaxe, vous
pouvez avoir à indiquer le mode en utilisant cette option.
</para>
</listitem>
</itemizedlist>
<para>
Plus d'options de configuration pourront être ajoutées en tant que futurs
perfectionnements de cette classe.
</para>
<para>
Les deux arguments de la méthode <methodname>setOption()</methodname> sont un nom
d'option de configuration et une valeur d'option.
</para>
<example id="zend.console.getopt.configuration.config.example.setoption">
<title>Utilisation de setOption()</title>
<programlisting language="php"><![CDATA[
$opts = new Zend_Console_Getopt('abp:');
$opts->setOption('ignoreCase', true);
]]></programlisting>
</example>
<para>
L'argument de la méthode <methodname>setOptions()</methodname> est un tableau
associatif. Les clés de ce tableau sont les noms d'option de configuration, et les
valeurs sont des valeurs de configuration. C'est également le format de tableau utilisé
par le constructeur de classe. Les valeurs de configuration que vous indiquez sont
fusionnées avec la configuration courante ; vous n'avez pas à énumérer toutes les
options.
</para>
<example id="zend.console.getopt.configuration.config.example.setoptions">
<title>Utilisation de setOptions()</title>
<programlisting language="php"><![CDATA[
$opts = new Zend_Console_Getopt('abp:');
$opts->setOptions(
array(
'ignoreCase' => true,
'dashDash' => false
)
);
]]></programlisting>
</example>
</sect2>
</sect1>
|