| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- 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 language="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
- Schleife, wird der Status des Fortschrittsbalken auf fertig gestellt.
- </para>
- <para>
- Man kann auch die <methodname>update()</methodname> 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 <methodname>update()</methodname> oder
- <methodname>finish()</methodname> 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>
- <link
- linkend="zend.progressbar.adapter.console">Zend_ProgressBar_Adapter_Console</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link
- linkend="zend.progressbar.adapter.jspush">Zend_ProgressBar_Adapter_JsPush</link>
- </para>
- </listitem>
- <listitem>
- <para>
- <link
- linkend="zend.progressbar.adapter.jspull">Zend_ProgressBar_Adapter_JsPull</link>
- </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>
|