Zend_ProgressBarの各クラスの詳細
ここまでで、Zend_ProgressBarモジュールの機能の大部分は説明しました。ここからは、いくつか細かい機能について説明します。
Zend_ProgressBarクラス
Zend_ProgressBarクラスは進捗の管理など、プログレスバーの裏方の作業を行います。主なメソッドとしては、次のようなものがあります:
メソッド名 | 引数 | 説明 |
(コンストラクタ) | $adapter, $min, $max, $persistenceNamespace | Zend_ProgressBarのオブジェクトを作成する。$adapterは出力に使うアダプタ、$min は進捗の最低値、$maxは進捗の最大値。$persistenceNamespaceはリクエストをまたがってZend_ProgressBarを利用する場合に指定する。$min以下は省略可能でデフォルト値は$min=0, $max=100, $persistenceNamespace=null。 |
update | $value, $text | 進捗の度合を$valueで指定し、進捗を通知する。$textは現在の進捗に関するコメント。$value, $text 共に省略可能で $value を省略した場合は進捗の値の更新はせず、通知だけ行う。また$textのデフォルト値はnull。 |
next | $diff, $text | 進捗の度合いを$diffだけ増やし、進捗を通知する。$textは現在の進捗に関するコメント。$value, $text 共に省略可能で、デフォルト値は$diff=1, $text=null。 |
finish | (なし) | 処理が終了したことを通知する。 |
このうち、コンストラクタの$persistenceNamespaceは、リクエストやオブジェクトをまたがってZend_ProgressBarを利用する場合に指定する引数で、プル型でZend_ProgressBarを利用する場合には必要となります。
コンソール用のアダプタ
コンソール用のアダプタには、出力を調整するためのメソッドが多数あります。
メソッド名 | 引数 | 説明 |
setBarIndicatorChar | $char | 現在の進捗を示す文字。デフォルトでは""。 |
setBarLeftChar | $char | 処理済を示す文字。デフォルトでは"#"。 |
setBarRightChar | $char | 未処理を示す文字。デフォルトでは"-"。 |
setWidth | $width | プログレスバーの幅を文字数で指定。デフォルトでは20。 |
setFinishAction | $action | 終了時に何を出力するかを指定。self::FINISH_ACTION_CLEAR_LINE(行をクリア)、self::FINISH_ACTION_EOL(改行)、self::FINISH_ACTION_NONE(無動作)のいずれかで、デフォルトではself::FINISH_ACTION_EOL。 |
setOutputStream | $resource | 出力先を指定。デフォルトでは標準出力。 |
例えば、少し変わったプログレスバーが欲しいのなら、次のように指定できます。
$adapter->setBarLeftChar('+'); $adapter->setBarRightChar('='); $adapter->setBarIndicatorChar('->'); $adapter->setWidth(30);
▼
20% [++->======]