Spis treści
Komponent Zend_Filter zapewnia zestaw najczęściej potrzebnych walidatorów. Zapewnia też prosty mechanizm łańcuchowego wywoływania walidatorów, dzięki ktoremu wiele filtrów może być dodanych do jednej danej w kolejności zdefiniowanej przez programistę.
Czym jest walidator?
Walidator bada dane wejściowe w oparciu o pewne wymagania i tworzy wynik w postaci wartości logicznej - wartość ta mówi czy dane wejściowe spełniają te wymagania. Jeśli dane wejściowe nie spełniają wymagań, walidator może dodatkowo przekazać informacje o tym, które z wymagań nie zostały spełnione.
Na przykład, aplikacja web może wymagać, aby długość nazwy użytkownika mieściła się pomiędzy sześcioma a dwunastoma znakami, a znaki te były jedynie z grupy znaków alfanumerycznych. Walidator może być użyty do sprawdzenia czy nazwa użytkownika spełnia te wymagania. Jeśli wybrana nazwa użytkownika nie spełni jednego lub obu tych wymagań, użytecznie by było wiedzieć, które z wymagań nie zostało spełnione.
Mająć ustaloną w ten sposób definicję walidacji, możemy zapewnić
podstawę dla interfejsu Zend_Validate_Interface
, który
wymaga zaimplementowania przez klasę walidatora dwóch metod,
isValid()
oraz getMessages()
. Metoda
isValid()
przeprowadza walidację podanej wartości,
zwracając true
wtedy i tylko wtedy, gdy wartość
spełnia kryteria walidacji. Jeśli metoda isValid()
zwróci
false
, za pomocą metody getMessages()
można
pobrać tablicę wiadomości wyjaśniających powody niepowodzenia walidacji.
Notatka | |
---|---|
Metoda |
Poniższy przykład ilustruje walidację adresu e-mail:
<?php require_once 'Zend/Validate/EmailAddress.php'; $validator = new Zend_Validate_EmailAddress(); if ($validator->isValid($email)) { // email jest prawidłowy } else { // email nie jest prawidłowy; wyświetl powody foreach ($validator->getMessages() as $message) { echo "$message\n"; } } ?>