Zend_ProgressBar.xml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20827 -->
  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>Wprowadzenie</title>
  8. <para>
  9. <classname>Zend_ProgressBar</classname> to komponent służący do tworzenia i
  10. aktualizacji pasków postępu (progressbar) w różnych środowiskach. Składa się na niego
  11. pojedynczy element backendu, który sygnalizuje postęp poprzez jeden z wielu
  12. dostępnych adapterów. Podczas każdej aktualizacji brana jest wartość absolutna i
  13. opcjonalna wiadomość o stanie postępu a następnie skonfigurowany adapter
  14. jest wywoływany z obliczonymi danymi takimi jak procent postępu
  15. oraz czas, jaki został do końca wykonywanej akcji.
  16. </para>
  17. </sect2>
  18. <sect2 id="zend.progressbar.basic">
  19. <title>Podstawowe użycie Zend_Progressbar</title>
  20. <para>
  21. <classname>Zend_ProgressBar</classname> jest komponentem łatwym w użyciu. Należy,
  22. po prostu, utworzyć nową instancję klasy <classname>Zend_Progressbar</classname>,
  23. definiując wartość minimalną i maksymalną oraz wybrać adapter służący prezentacji
  24. danych o postępie działań. W przypadku operacji na pliku, użycie może wyglądać
  25. następująco:
  26. </para>
  27. <programlisting language="php"><![CDATA[
  28. $progressBar = new Zend_ProgressBar($adapter, 0, $fileSize);
  29. while (!feof($fp)) {
  30. // Wykonanie operacji
  31. $progressBar->update($currentByteCount);
  32. }
  33. $progressBar->finish();
  34. ]]></programlisting>
  35. <para>
  36. W pierwszym kroku tworzona jest instancja <classname>Zend_ProgressBar</classname>
  37. ze zdefiniowanym adapterem, wartością minimalną: 0, oraz maksymalną równą
  38. rozmiarowi pliku. Po tym następuje seria operacji na pliku w pętli.
  39. Podczas każdej iteracji pętli, pasek postępu jest aktualizowany danymi o
  40. ilości "przerobionych" bajtów pliku.
  41. </para>
  42. <para>
  43. Metodę <methodname>update()</methodname> klasy <classname>Zend_ProgressBar</classname>
  44. można również wywoływać bez argumentów. Powoduje to przeliczenie czasu do końca
  45. wykonywanej akcji i wysłanie go do adaptera. Ten sposób może być przydatny gdy nie
  46. ma konkretnych danych do wysłania adapterowi ale niezbędna jest aktualizacja
  47. paska postępu.
  48. </para>
  49. </sect2>
  50. <sect2 id="zend.progressbar.persistent">
  51. <title>Postęp utrwalony (persistent progress)</title>
  52. <para>
  53. Jeśli zajdzie potrzeba utrzymania paska postępu przez wiele żądań, można w tym celu
  54. podać łańcuch znaków z przestrzenią nazw sesji
  55. jako czwarty argument konstruktora. W tym przypadku
  56. pasek postępu nie uaktualni adaptera w momencie konstruowania - niezbędne będzie
  57. wywołanie metody <methodname>update()</methodname>
  58. lub <methodname>finish()</methodname>.
  59. Obecna wartość, tekst stanu postępu oraz czas rozpoczęcia działania
  60. (wymagany przy obliczaniu czasu pozostałego do końca) będą pobrane podczas następnego
  61. żądania i uruchomienia skryptu.
  62. </para>
  63. </sect2>
  64. <sect2 id="zend.progressbar.adapters">
  65. <title>Standardowe adaptery</title>
  66. <para>
  67. Standardowo <classname>Zend_ProgressBar</classname> ma do dyspozycji następujące
  68. adaptery:
  69. <itemizedlist mark="opencircle">
  70. <listitem>
  71. <para><xref linkend="zend.progressbar.adapter.console" /></para>
  72. </listitem>
  73. <listitem><para><xref linkend="zend.progressbar.adapter.jspush" /></para></listitem>
  74. <listitem><para><xref linkend="zend.progressbar.adapter.jspull" /></para></listitem>
  75. </itemizedlist>
  76. </para>
  77. <xi:include href="Zend_ProgressBar_Adapter_Console.xml" />
  78. <xi:include href="Zend_ProgressBar_Adapter_JsPush.xml" />
  79. <xi:include href="Zend_ProgressBar_Adapter_JsPull.xml" />
  80. </sect2>
  81. </sect1>
  82. <!--
  83. vim:se ts=4 sw=4 et:
  84. -->