Zend_ProgressBar.xml 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15215 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.progressbar.introduction" xmlns:xi="http://www.w3.org/2001/XInclude">
  5. <title>Zend_ProgressBar</title>
  6. <sect2 id="zend.progressbar.whatisit">
  7. <title>Einführung</title>
  8. <para>
  9. <classname>Zend_ProgressBar</classname> ist eine Komponente um Fortschrittsbalken in verschiedenen
  10. Umgebungen zu erstellen und zu aktualisieren. Sie besteht aus einem einzelnen Backend, welches
  11. des Fortschritt durch eines der verschiedenen Backends ausgibt. Bei jedem Update nimmt es einen
  12. absoluten Wert und optional eine Statusmeldung und ruft dann den Adapter mit einigen
  13. vorkalkulierten Werten, wie Prozentwerte und voraussichtliche Restzeit, auf.
  14. </para>
  15. </sect2>
  16. <sect2 id="zend.progressbar.basic">
  17. <title>Grundsätzliche Verwendung von Zend_Progressbar</title>
  18. <para>
  19. <classname>Zend_ProgressBar</classname> ist sehr einfach in seiner Verwendung. Man erstellt einfach eine
  20. neue Instanz von <classname>Zend_Progressbar</classname>, definiert einen minimalen und einen maximalan Wert, und wählt
  21. den Adapter der die Daten ausgibt. Wenn man die Datei ausführen will, muß man etwas ähnliches
  22. wie folgt machen:
  23. </para>
  24. <programlisting role="php"><![CDATA[
  25. $progressBar = new Zend_ProgressBar($adapter, 0, $fileSize);
  26. while (!feof($fp)) {
  27. // Mach was
  28. $progressBar->update($currentByteCount);
  29. }
  30. $progressBar->finish();
  31. ]]></programlisting>
  32. <para>
  33. Im ersten Schritt, wird eine Instanz von <classname>Zend_ProgressBar</classname> erstellt, mit einem
  34. speziellen Adapter, einem minimalen Wert von 0 und einem maximalen Wert der kompletten
  35. Dateigröße. Dann wird die Datei ausgeführt und bei jeder Schleife wird der Fortschrittsbalken
  36. mit der aktuellen Byteanzahl aktualisiert. Am Ende der Schreife, wird der Status des
  37. Fortschrittsbalken auf fertig gestellt.
  38. </para>
  39. <para>
  40. Man kann auch die <code>update()</code> Methode von <classname>Zend_ProgressBar</classname> ohne Argumente
  41. aufrufen, das die ETA einfach neu berechnet und den Adapter aktualisiert. Das ist nützlich
  42. wenn kein Update der Daten war, man aber den Fortschrittsbalken aktualisieren will.
  43. </para>
  44. </sect2>
  45. <sect2 id="zend.progressbar.persistent">
  46. <title>Persistenter Fortschritt</title>
  47. <para>
  48. Wenn man den Fortschrittsbalken über mehrere Aufrufe hinweg persistent haben will, kann man den
  49. Namen eines Session Namespaces als viertes Argument an den Constructor angeben. In diesem Fall
  50. wird der Fortschrittsbalken den Adapter nicht im Constructor benachrichtigen, sondern nur wenn
  51. man <code>update()</code> oder <code>finish()</code> aufruft. Auch der aktuelle Wert, der Statustext
  52. und die Startzeit für die ETA Kalkulation werden im nächsten Ablauf erneut geholt.
  53. </para>
  54. </sect2>
  55. <sect2 id="zend.progressbar.adapters">
  56. <title>Standard Adapter</title>
  57. <para>
  58. <classname>Zend_ProgressBar</classname> kommt mit den folgenden zwei Adaptern:
  59. <itemizedlist mark="opencircle">
  60. <listitem><para><xref linkend="zend.progressbar.adapter.console" /></para></listitem>
  61. <listitem><para><xref linkend="zend.progressbar.adapter.jspush" /></para></listitem>
  62. <listitem><para><xref linkend="zend.progressbar.adapter.jspull" /></para></listitem>
  63. </itemizedlist>
  64. </para>
  65. <xi:include href="Zend_ProgressBar_Adapter_Console.xml" />
  66. <xi:include href="Zend_ProgressBar_Adapter_JsPush.xml" />
  67. <xi:include href="Zend_ProgressBar_Adapter_JsPull.xml" />
  68. </sect2>
  69. </sect1>
  70. <!--
  71. vim:se ts=4 sw=4 et:
  72. -->