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