単一のファイルを処理する場合なら、
プログレスバーや処理中メッセージを表示する必要は特にありません。
しかし、多くのサブディレクトリやファイルが存在するディレクトリを処理する場合は、
それなりの時間がかかります。
実行中のインターフェイス (CLI あるいはウェブ) によって、
プログレスバーや処理中メッセージを表示する方法は 2 通りあります。
プログレスバーを表示するように指定したときに PEAR::Console_ProgressBar
パッケージがインストールされていなければ、デフォルトのテキストメッセージを使用します
(エラーにはなりません)。
Wait while parsing data source ...
Wait while parsing file "C:\wamp\tmp\Services_W3C_CSSValidator-0.1.0\CSSValidator.php"
CLI で pci コマンドを使う場合
-p|--progress スイッチで
bar (プログレスバー) あるいは text
(シンプルなテキストメッセージ) のいずれかを指定します。
pci --summarize --progress bar --dir C:\Temp\beehiveforum082\forum
CLI で pci コマンドを使わない場合
クラスのコンストラクタの 2 番目のパラメータ
(ドライバ固有のオプション) を使用します。
キー progress に
bar (プログレスバー) あるいは
text (シンプルなテキストメッセージ) を指定します。
また、サイレントモードを無効にすることも忘れないようにしましょう
(以前のバージョンとの互換性を保つため、デフォルトでは有効になっています)。
<?php
require_once 'PHP/CompatInfo.php';
$driverType = 'csv';
$driverOptions = array('silent' => false, 'progress' => 'bar');
$pci = new PHP_CompatInfo($driverType, $driverOptions);
?>
この出力は次のようになります。
- 79/419 files [====>-----------------] 18.85% Elapsed Time: 00:28.93
Web SAPI の場合 配布物の中の
examples ディレクトリに、
pci180_parsefolder_tohtml.php
という名前のサンプルがあります。このサンプルでは
PEAR::HTML_Progress2 パッケージを用いて COMET (AJAX ではありません)
によるプログレスバーを作成しています。