Zend_ProgressBar
Einführung
Zend_ProgressBar ist eine Komponente um Fortschrittsbalken in verschiedenen
Umgebungen zu erstellen und zu aktualisieren. Sie besteht aus einem einzelnen Backend, welches
des Fortschritt durch eines der verschiedenen Backends ausgibt. Bei jedem Update nimmt es einen
absoluten Wert und optional eine Statusmeldung und ruft dann den Adapter mit einigen
vorkalkulierten Werten, wie Prozentwerte und voraussichtliche Restzeit, auf.
Grundsätzliche Verwendung von Zend_Progressbar
Zend_ProgressBar ist sehr einfach in seiner Verwendung. Man erstellt einfach eine
neue Instanz von Zend_Progressbar, definiert einen minimalen und einen maximalan Wert, und wählt
den Adapter der die Daten ausgibt. Wenn man die Datei ausführen will, muß man etwas ähnliches
wie folgt machen:
update($currentByteCount);
}
$progressBar->finish();
]]>
Im ersten Schritt, wird eine Instanz von Zend_ProgressBar erstellt, mit einem
speziellen Adapter, einem minimalen Wert von 0 und einem maximalen Wert der kompletten
Dateigröße. Dann wird die Datei ausgeführt und bei jeder Schleife wird der Fortschrittsbalken
mit der aktuellen Byteanzahl aktualisiert. Am Ende der Schreife, wird der Status des
Fortschrittsbalken auf fertig gestellt.
Man kann auch die update() Methode von Zend_ProgressBar ohne Argumente
aufrufen, das die ETA einfach neu berechnet und den Adapter aktualisiert. Das ist nützlich
wenn kein Update der Daten war, man aber den Fortschrittsbalken aktualisieren will.
Persistenter Fortschritt
Wenn man den Fortschrittsbalken über mehrere Aufrufe hinweg persistent haben will, kann man den
Namen eines Session Namespaces als viertes Argument an den Constructor angeben. In diesem Fall
wird der Fortschrittsbalken den Adapter nicht im Constructor benachrichtigen, sondern nur wenn
man update() oder finish() aufruft. Auch der aktuelle Wert, der Statustext
und die Startzeit für die ETA Kalkulation werden im nächsten Ablauf erneut geholt.
Standard Adapter
Zend_ProgressBar kommt mit den folgenden zwei Adaptern: