ダウンロード サンプルファイル (13.8 KB)
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% [++->======]
この記事は参考になりましたか?
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 風田 伸之(カゼタ ノブユキ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
