Zend_Console_Getopt の設定オプションの規則の追加Zend_Console_Getopt のコンストラクタで指定するもの以外にも、 追加でオプションの規則を指定できます。その際には addRules() メソッドを使用します。 addRules() に渡す引数は、コンストラクタの最初の引数と同じです。 短い形式のオプション指定を表す文字列、 あるいは長い形式のオプション指定を表す連想配列となります。 オプションを指定する構文の詳細は、 Getopt の規則の宣言を参照ください。 Example #1 addRules() の使用法
上の例は、--verbose というオプションと そのエイリアス -v を コンストラクタで定義したオプションに追加しています。 Zend_Console_Getopt のインスタンスには、 短い形式のオプションと長い形式のオプションが共存可能であることに注意しましょう。 ヘルプメッセージの追加長い形式のオプション規則を宣言する際に指定するヘルプ文字列に加え、 setHelp() メソッドでもヘルプ文字列を規則と関連付けることができます。 setHelp() メソッドの引数は連想配列で、 キーがフラグ名、値が対応するヘルプ文字列となります。 Example #2 setHelp() の使用法
エイリアスつきでオプションを宣言した場合は、 どのエイリアスでも連想配列のキーに使用できます。 オプションを短い構文で宣言した場合、ヘルプ文字列を設定するには setHelp() メソッドが唯一の手段となります。 オプションのエイリアスの追加オプションのエイリアスを宣言するには setAliases メソッドを使用します。引数は連想配列で、 先ほど宣言したフラグがキー、そしてそのフラグのエイリアスが値となります。 ここで指定したエイリアスが、既存のエイリアスにマージされます。 言い換えると、もともと定義されていたエイリアスもそのまま有効であるということです。 エイリアスは一度しか宣言できません。既存のエイリアスを再定義しようとすると Zend_Console_Getopt_Exception がスローされます。 Example #3 setAliases() の使用法
上の例では -a、--apple および --apfel をお互いエイリアス指定した後で、 -p と --pear もエイリアスとしています。 オプションを短い構文で宣言した場合、エイリアスを定義するには setAliases() メソッドが唯一の手段となります。 引数リストの追加デフォルトでは、Zend_Console_Getopt は $_SERVER['argv'] の配列を使用して コマンドライン引数をパースします。 コンストラクタの二番目の引数として、引数を含む別の配列を指定することもできます。 さらに、もっと別の引数を追加するには addArguments() メソッドを使用し、 既存の引数配列を置き換えるには setArguments() メソッドを使用します。どちらの場合についても、 これらのメソッドのパラメータは単純な文字列の配列となります。 addArguments() は現在の引数にその配列を追加し、 setArguments() は現在の引数をその配列で置き換えます。 Example #4 addArguments() および setArguments() の使用法
設定の追加Zend_Console_Getopt コンストラクタの 三番目の引数は、設定オプションの配列です。 これは、返り値となるオブジェクトのインスタンスの挙動を設定するものです。 設定オプションを指定するために setOptions() メソッドを指定することもできます。あるいは、 オプションを個別に設定するには setOption() メソッドを使用します。
現在サポートしているオプションには、 クラス定数が定義されています。 オプションとそれに対応する定数 (およびリテラル値) の一覧を以下にまとめます。
将来は、さらに多くの設定オプションがこのクラスに追加される予定です。 setOption() メソッドに渡す引数は、設定オプション名とその値のふたつです。 Example #5 setOption() の使用法
setOptions() メソッドに渡す引数は連想配列です。 そのキーが設定オプション名、そして値として設定値を指定します。 これは、クラスのコンストラクタで使用するフォーマットでもあります。 指定した設定項目が既存の設定にマージされるので、 すべてのオプションを指定する必要はありません。 Example #6 setOptions() の使用法
|