[MANUAL] English:
[zend.git] / documentation / manual / pl / module_specs / Zend_Validate-ValidatorChains.xml
blobe0c9bd46ac75f48d6c0440c64bda4049d0c10923
1 <sect1 id="zend.validate.validator_chains">
3     <title>Łańcuchy weryfikatorów</title>
5     <para>
6         Często do pewnej wartości potrzebujemy zastosować wiele weryfikatorów w
7         określonej kolejności. Poniższy kod demonstruje sposób rozwiązania
8         przykładu z
9         <link linkend="zend.validate.introduction">wprowadzenia</link>, gdzie
10         nazwa użytkownika musi mieć długość między 6 a 12 alfanumerycznych
11         znaków:
13         <programlisting role="php"><![CDATA[
14 // Tworzymy łańcuch weryfikatorów i dodajemy do niego weryfikatory
15 $validatorChain = new Zend_Validate();
16 $validatorChain->addValidator(new Zend_Validate_StringLength(6, 12))
17                ->addValidator(new Zend_Validate_Alnum());
19 // Sprawdzamy nazwę użytkownika
20 if ($validatorChain->isValid($username)) {
21     // nazwa użytkownika jest poprawna
22 } else {
23     // nazwa użytkownika nie jest poprawna; wyświetlamy komunikaty
24     foreach ($validatorChain->getMessages() as $message) {
25         echo "$message\n";
26     }
28 ]]>
29         </programlisting>
31         Weryfikatory są uruchamiane w takiej kolejności, w jakiej zostały dodane
32         do <code>Zend_Validate</code>. W powyższym przykładzie, wpierw jest
33         sprawdzane jest to, czy długość nazwy użytkownika mieści się miedzy 6 a
34         12 znaków, a następnie sprawdzane jest czy zawiera ona tylko znaki
35         alfanumeryczne. Druga weryfikacja, dla alfanumerycznych znaków, jest
36         przeprowadzana niezależnie od tego, czy pierwsza weryfikacja, dla długości
37         pomiędzy 6 a 12 znaków udała się. Oznacza to, że jeśli nie udadzą się
38         obie weryfikacje, to metoda <code>getMessages()</code> zwróci wiadomości
39         błędów pochodzące od obu weryfikatorów.
40     </para>
42     <para>
43         W niektórych przypadkach sensowna może być możliwość przerwania
44         łańcucha weryfikatorów w przypadku, gdy proces weryfikacji nie uda się.
45         <code>Zend_Validate</code> obsługuje takie przypadki za pomocą
46         ustawienia drugiego parametru w metodzie <code>addValidator()</code>.
47         Ustawiając wartość zmiennej <code>$breakChainOnFailure</code> na
48         <code>true</code>, dodany weryfikator przerwie łańcuchowe wywoływanie
49         przy wystąpieniu błędu, co zapobiegnie uruchamianiu innych weryfikacji,
50         które w danej sytuacji zostaną uznane za bezużyteczne. Jeśli powyższy
51         przykład byłby napisany tak jak poniżej, wtedy weryfikacja znaków
52         alfanumerycznych nie byłaby przeprowadzona jeśli długość łańcucha znaków
53         byłaby nieodpowiednia:
55         <programlisting role="php"><![CDATA[
56 $validatorChain->addValidator(new Zend_Validate_StringLength(6, 12), true)
57         ->addValidator(new Zend_Validate_Alnum());
58 ]]>
59         </programlisting>
61     </para>
63     <para>
64         W łańcuchu weryfikatorów może być użyty dowolny obiekt, który implementuje
65         interfejs <code>Zend_Validate_Interface</code>.
66     </para>
68 </sect1>