1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20765 -->
4 <sect1 id="zend.console.getopt.configuration">
5 <title>Zend_Console_Getopt の設定</title>
7 <sect2 id="zend.console.getopt.configuration.addrules">
8 <title>オプションの規則の追加</title>
10 <classname>Zend_Console_Getopt</classname> のコンストラクタで指定するもの以外にも、
11 追加でオプションの規則を指定できます。その際には
12 <methodname>addRules()</methodname> メソッドを使用します。
13 <methodname>addRules()</methodname> に渡す引数は、コンストラクタの最初の引数と同じです。
15 あるいは長い形式のオプション指定を表す連想配列となります。
17 <link linkend="zend.console.getopt.rules">Getopt
20 <example id="zend.console.getopt.configuration.addrules.example">
21 <title>addRules() の使用法</title>
22 <programlisting language="php"><![CDATA[
23 $opts = new Zend_Console_Getopt('abp:');
26 'verbose|v' => '詳細な出力を表示する'
32 上の例は、<command>--verbose</command> というオプションと
33 そのエイリアス <command>-v</command> を
34 コンストラクタで定義したオプションに追加しています。
35 <classname>Zend_Console_Getopt</classname> のインスタンスには、
36 短い形式のオプションと長い形式のオプションが共存可能であることに注意しましょう。
40 <sect2 id="zend.console.getopt.configuration.addhelp">
41 <title>ヘルプメッセージの追加</title>
43 長い形式のオプション規則を宣言する際に指定するヘルプ文字列に加え、
44 <methodname>setHelp()</methodname> メソッドでもヘルプ文字列を規則と関連付けることができます。
45 <methodname>setHelp()</methodname> メソッドの引数は連想配列で、
46 キーがフラグ名、値が対応するヘルプ文字列となります。
48 <example id="zend.console.getopt.configuration.addhelp.example">
49 <title>setHelp() の使用法</title>
50 <programlisting language="php"><![CDATA[
51 $opts = new Zend_Console_Getopt('abp:');
54 'a' => 'リンゴです。パラメータは不要です。',
55 'b' => 'バナナです。整数パラメータが必須です。',
56 'p' => '洋ナシです。オプションで文字列パラメータを指定します。'
62 エイリアスつきでオプションを宣言した場合は、
63 どのエイリアスでも連想配列のキーに使用できます。
66 オプションを短い構文で宣言した場合、ヘルプ文字列を設定するには
67 <methodname>setHelp()</methodname> メソッドが唯一の手段となります。
71 <sect2 id="zend.console.getopt.configuration.addaliases">
72 <title>オプションのエイリアスの追加</title>
74 オプションのエイリアスを宣言するには <methodname>setAliases</methodname>
76 先ほど宣言したフラグがキー、そしてそのフラグのエイリアスが値となります。
77 ここで指定したエイリアスが、既存のエイリアスにマージされます。
78 言い換えると、もともと定義されていたエイリアスもそのまま有効であるということです。
81 エイリアスは一度しか宣言できません。既存のエイリアスを再定義しようとすると
82 <classname>Zend_Console_Getopt_Exception</classname> がスローされます。
84 <example id="zend.console.getopt.configuration.addaliases.example">
85 <title>setAliases() の使用法</title>
86 <programlisting language="php"><![CDATA[
87 $opts = new Zend_Console_Getopt('abp:');
99 <command>-a</command>、<command>--apple</command> および
100 <command>--apfel</command> をお互いエイリアス指定した後で、
101 <command>-p</command> と <command>--pear</command>
105 オプションを短い構文で宣言した場合、エイリアスを定義するには
106 <methodname>setAliases()</methodname> メソッドが唯一の手段となります。
110 <sect2 id="zend.console.getopt.configuration.addargs">
111 <title>引数リストの追加</title>
113 デフォルトでは、<classname>Zend_Console_Getopt</classname> は
114 <varname>$_SERVER['argv']</varname> の配列を使用して
116 コンストラクタの二番目の引数として、引数を含む別の配列を指定することもできます。
118 <methodname>addArguments()</methodname> メソッドを使用し、
119 既存の引数配列を置き換えるには <methodname>setArguments()</methodname>
120 メソッドを使用します。どちらの場合についても、
121 これらのメソッドのパラメータは単純な文字列の配列となります。
122 <methodname>addArguments()</methodname> は現在の引数にその配列を追加し、
123 <methodname>setArguments()</methodname> は現在の引数をその配列で置き換えます。
125 <example id="zend.console.getopt.configuration.addargs.example">
126 <title>addArguments() および setArguments() の使用法</title>
127 <programlisting language="php"><![CDATA[
128 // デフォルトでは、コンストラクタは $_SERVER['argv'] を使用します
129 $opts = new Zend_Console_Getopt('abp:');
132 $opts->addArguments(array('-a', '-p', 'p_parameter', 'non_option_arg'));
134 // 新しい配列で既存の引数を置き換えます
135 $opts->setArguments(array('-a', '-p', 'p_parameter', 'non_option_arg'));
140 <sect2 id="zend.console.getopt.configuration.config">
143 <classname>Zend_Console_Getopt</classname> コンストラクタの
144 三番目の引数は、設定オプションの配列です。
145 これは、返り値となるオブジェクトのインスタンスの挙動を設定するものです。
146 設定オプションを指定するために <methodname>setOptions()</methodname>
147 メソッドを指定することもできます。あるいは、
149 <methodname>setOption()</methodname> メソッドを使用します。
152 <title>"オプション" という用語について</title>
155 <classname>Zend_Console_Getopt</classname> クラスの設定に使用するもののことを指しています。
156 オプションという言葉の意味自体は、Zend Framework
157 のその他の部分で使用している意味と同じです。
158 <classname>Zend_Console_Getopt</classname> がパースする
159 コマンドラインオプションのことではありません。
165 オプションとそれに対応する定数 (およびリテラル値)
171 <constant>Zend_Console_Getopt::CONFIG_DASHDASH</constant> ("dashDash")
172 を <constant>TRUE</constant> にすると、フラグの終了を表す特殊フラグ <command>--</command>
173 を有効にします。ダブルダッシュの後に続くコマンドライン引数は、
174 たとえダッシュで始まっていてもオプションとはみなされません。
175 この設定オプションは、デフォルトで <constant>TRUE</constant> となっています。
180 <constant>Zend_Console_Getopt::CONFIG_IGNORECASE</constant> ("ignoreCase")
181 を <constant>TRUE</constant> にすると、
182 大文字小文字が違うだけのフラグをお互いエイリアスとして扱います。
183 つまり、<command>-a</command> と
184 <command>-A</command> は同じフラグとみなされます。
185 この設定オプションは、デフォルトでは <constant>FALSE</constant> となっています。
190 <constant>Zend_Console_Getopt::CONFIG_RULEMODE</constant>
191 ("ruleMode") には <constant>Zend_Console_Getopt::MODE_ZEND</constant>
192 ("zend") あるいは <constant>Zend_Console_Getopt::MODE_GNU</constant>
194 独自の構文を使用するためにクラスを拡張する場合を除き、
195 このオプションを使用する必要はありません。
196 <classname>Zend_Console_Getopt</classname>
197 でサポートされている二つのモードは明確です。
198 文字列を指定した場合は <constant>MODE_GNU</constant>、
199 それ以外の場合は <constant>MODE_ZEND</constant> とみなします。
200 もしクラスを拡張して別の構文形式を追加した場合は、
201 そのモードをこのオプションで指定する必要があります。
206 将来は、さらに多くの設定オプションがこのクラスに追加される予定です。
209 <methodname>setOption()</methodname>
210 メソッドに渡す引数は、設定オプション名とその値のふたつです。
212 <example id="zend.console.getopt.configuration.config.example.setoption">
213 <title>setOption() の使用法</title>
214 <programlisting language="php"><![CDATA[
215 $opts = new Zend_Console_Getopt('abp:');
216 $opts->setOption('ignoreCase', true);
220 <methodname>setOptions()</methodname> メソッドに渡す引数は連想配列です。
221 そのキーが設定オプション名、そして値として設定値を指定します。
222 これは、クラスのコンストラクタで使用するフォーマットでもあります。
223 指定した設定項目が既存の設定にマージされるので、
224 すべてのオプションを指定する必要はありません。
226 <example id="zend.console.getopt.configuration.config.example.setoptions">
227 <title>setOptions() の使用法</title>
228 <programlisting language="php"><![CDATA[
229 $opts = new Zend_Console_Getopt('abp:');
232 'ignoreCase' => true,