Zend_ProgressBar.xml 4.4 KB

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