1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20765 -->
4 <sect1 id="zend.console.getopt.introduction">
7 <classname>Zend_Console_Getopt</classname> クラスは、
8 コマンドラインアプリケーションでのオプションや引数の処理を助けるものです。
11 ユーザは、アプリケーションを実行する際にコマンドライン引数を指定できます。
12 これらの引数はアプリケーションにとって何らかの意味を持つものであり、
13 何らかの振る舞いを変更したりリソースを選択したり、パラメータを設定したりします。
14 多くのオプションには、慣例となっている意味があります。
15 たとえば <command>--verbose</command> は、多くのアプリケーションで
17 その他のオプションには、アプリケーションによって意味が異なるものもあります。
18 たとえば <command>-c</command> は、
19 <command>grep</command>、<command>ls</command> および
20 <command>tar</command> でそれぞれ違う機能を表します。
23 以下で用語の定義をします。これらの用語はいろいろな意味で用いられますが、
24 このドキュメントでは、ここで定義した意味で使用します。
30 コマンドラインで、コマンド名の後にあらわれる文字列。
33 コマンドの操作対象となるリソースを指定します。
39 引数のうち、そのコマンドのデフォルトの振る舞いを
45 "フラグ (flag)": オプションの最初の部分で、
46 そのオプションの目的を表すもの。フラグの前には、
48 (<command>-</command> あるいは <command>--</command>)
51 一文字のフラグかあるいは一文字フラグのクラスタの場合です。
52 ふたつのダッシュをつけるのは複数文字からなるフラグの場合です。
58 "パラメータ (parameter)": オプションの二番目の部分で、
59 フラグとともに使用するデータの値を指定します。
60 これは、オプションがそれを受け付ける場合に限ります。
62 <command>--verbose</command> オプションを受け付けますが、
63 このオプションには一般的にパラメータを指定しません。
64 しかし、<command>--user</command> のようなオプションは、
65 たいていの場合はその後にパラメータが必要です。
68 パラメータはフラグ引数の後で別の引数として指定することもできますし、
69 あるいは同一の引数文字列の一部として指定することもできます。
70 この場合は、フラグとパラメータを等号 (<command>=</command>) で連結します。
71 後者の形式は、長いフラグでのみサポートしています。
73 <command>-u username</command>、<command>--user username</command>
74 あるいは <command>--user=username</command> といった形式を
75 <classname>Zend_Console_Getopt</classname> でサポートしています。
80 "クラスタ (cluster)": 複数の一文字のフラグを組み合わせ、
81 ひとつのダッシュの後に文字列としてつなげたもの。
82 たとえば "<command>ls -1str</command>"
84 このコマンドは "<command>ls -1 -s -t -r</command>"
85 と同等です。クラスタ化できるのは一文字のフラグだけで、
91 たとえば <command>mysql --user=root mydatabase</command> において、
92 <command>mysql</command> は <emphasis>コマンド</emphasis>、
93 <command>--user=root</command> は <emphasis>オプション</emphasis>、
94 <command>--user</command> は <emphasis>フラグ</emphasis>、
95 <command>root</command> はオプションに対する <emphasis>パラメータ</emphasis>
96 となります。また <command>mydatabase</command> は、
97 この定義によると引数ですがオプションではありません。
100 <classname>Zend_Console_Getopt</classname> が提供するインターフェイスには、
101 「アプリケーションで使用可能なフラグの宣言」
102 「無効なフラグが指定された場合のエラー表示および使用法の表示」
103 「ユーザが指定したフラグのアプリケーションへの通知」
107 <title>Getopt はアプリケーションフレームワークではありません</title>
109 <classname>Zend_Console_Getopt</classname> はdoes
110 フラグやパラメータの意味を解釈するわけ <emphasis>ではなく</emphasis>、
111 またアプリケーションのワークフローを実装したりコードを起動したりするものでもありません。
112 それらの処理については、アプリケーション内で自分で実装しなければなりません。
113 <classname>Zend_Console_Getopt</classname> クラスを使用すると、
114 コマンドラインをパースし、ユーザが指定したオプションを
115 オブジェクト指向のメソッドで取得できるようになります。
116 しかし、その情報をもとにアプリケーションで何らかの処理を行うのは別の
117 <acronym>PHP</acronym> クラスの仕事です。
121 これ以降の節で、<classname>Zend_Console_Getopt</classname> の使用法を説明します。