| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15215 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.progressbar.introduction" xmlns:xi="http://www.w3.org/2001/XInclude">
- <title>Zend_ProgressBar</title>
- <sect2 id="zend.progressbar.whatisit">
- <title>Einführung</title>
- <para>
- <classname>Zend_ProgressBar</classname> 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.
- </para>
- </sect2>
- <sect2 id="zend.progressbar.basic">
- <title>Grundsätzliche Verwendung von Zend_Progressbar</title>
- <para>
- <classname>Zend_ProgressBar</classname> ist sehr einfach in seiner Verwendung. Man erstellt einfach eine
- neue Instanz von <classname>Zend_Progressbar</classname>, 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:
- </para>
- <programlisting role="php"><![CDATA[
- $progressBar = new Zend_ProgressBar($adapter, 0, $fileSize);
- while (!feof($fp)) {
- // Mach was
- $progressBar->update($currentByteCount);
- }
- $progressBar->finish();
- ]]></programlisting>
- <para>
- Im ersten Schritt, wird eine Instanz von <classname>Zend_ProgressBar</classname> 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.
- </para>
- <para>
- Man kann auch die <code>update()</code> Methode von <classname>Zend_ProgressBar</classname> 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.
- </para>
- </sect2>
- <sect2 id="zend.progressbar.persistent">
- <title>Persistenter Fortschritt</title>
- <para>
- 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 <code>update()</code> oder <code>finish()</code> aufruft. Auch der aktuelle Wert, der Statustext
- und die Startzeit für die ETA Kalkulation werden im nächsten Ablauf erneut geholt.
- </para>
- </sect2>
- <sect2 id="zend.progressbar.adapters">
- <title>Standard Adapter</title>
- <para>
- <classname>Zend_ProgressBar</classname> kommt mit den folgenden zwei Adaptern:
- <itemizedlist mark="opencircle">
- <listitem><para><xref linkend="zend.progressbar.adapter.console" /></para></listitem>
- <listitem><para><xref linkend="zend.progressbar.adapter.jspush" /></para></listitem>
- <listitem><para><xref linkend="zend.progressbar.adapter.jspull" /></para></listitem>
- </itemizedlist>
- </para>
- <xi:include href="Zend_ProgressBar_Adapter_Console.xml" />
- <xi:include href="Zend_ProgressBar_Adapter_JsPush.xml" />
- <xi:include href="Zend_ProgressBar_Adapter_JsPull.xml" />
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|