オプションおよび引数の取得Zend_Console_Getopt オブジェクトでオプションを宣言し、 コマンドラインあるいは配列から引数を受け取ったら、 このオブジェクトを使用して、ユーザがプログラムを起動した際に 指定したオプションを取得できます。 このクラスはマジックメソッドを実装しているので、 オプションの名前を指定して問い合わせることができます。 実際にデータをパースするのは、Zend_Console_Getopt に対する最初の問い合わせを行ったときです。 つまり、パースを行う前にいくつかのメソッドで オプションや引数、ヘルプ文字列や設定項目を変更することができるということです。 Getopt の例外処理ユーザがコマンドラインで無効な引数を指定すると、 パース関数は Zend_Console_Getopt_Exception をスローします。この例外を、アプリケーションのコードで処理する必要があります。 parse() メソッドを使用して、オブジェクトに引数をパースさせます。 try ブロック内で parse() を実行できるので、便利です。 パースに成功すると、それ以降で再度例外がスローされることはありません。 スローされた例外オブジェクトで、独自のメソッド getUsageMessage() が使用できます。これは、宣言されているすべてのオプションについての 使用法を説明した文字列を返します。 Example #1 Getopt の例外処理
例外が発生するのは、次のような場合です。
名前によるオプションの取得getOption() メソッドを使用すると、 オプションの値を問い合わせることができます。 そのオプションがパラメータを持っている場合は、 このメソッドはパラメータの値を返します。 パラメータを持っていないオプションでユーザがパラメータを指定した場合は、 このメソッドは TRUE を返します。 それ以外の場合は、このメソッドは NULL を返します。 Example #2 getOption() の使用法
あるいは、マジックメソッド __get() を使用して、 まるでクラスのメンバ変数であるかのようにオプションの値を取得することもできます。 また、マジックメソッド __isset() も実装しています。 Example #3 マジックメソッド __get() および __isset() の使用例
オプションにエイリアスが指定されている場合は、 上の方法でそのエイリアスを使用することもできます。 オプションの取得ユーザがコマンドラインで入力したオプションの全一覧を取得するには、 いくつかの方法があります。
これらのすべての出力メソッドで、フラグ文字列として使用するのは エイリアスリストの先頭にあるものです。たとえば あるオプションのエイリアスが verbose|v のように宣言されていたとすると、最初の文字列である verbose をオプション名として使用します。 オプションフラグ名には、先頭のダッシュは含みません。 非オプション引数の取得オプション引数およびそのパラメータをコマンドラインからパースした後も、 まだ追加の引数が残っているかも知れません。これらの引数を取得するには getRemainingArgs() メソッドを使用します。このメソッドは、 どのオプションにも属さない文字列の配列を返します。 Example #4 getRemainingArgs() の使用法
Zend_Console_Getopt は、GNU の慣習である「ダッシュふたつだけの引数があったら、 オプションはそこで終わりとみなす」をサポートしています。 その後に続く引数は、非オプション引数として扱わなければなりません。 これは、オプションではない引数がダッシュで始まる場合などに有用です。 たとえば "rm -- -filename-with-dash" のような場合です。
|