![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Tak piszę sobie powoli mój framework i ostatnio zobaczyłem w Zendzie fajne rozwiązanie validatora (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Trochę składnia zenda do mnie nie przemawia wiec napisałem coś swojego.
Dla nieobczajonych. Klasa sprawdza poprawność elementów w tablicy na podstawie określonych wymogów. Przyklad uzycia
* odnosi się do wszystkich zmiennych przy czym wlaściwości elementu sa zawsze nadrzędne(tj. gwiazdka ma zawsze mniejszy priorytet, nawet jesli podamy ją jako ostatni element tablicy). Dostępne wymagania minlength - minimalna długość maxlength - maksymalna dlugosc required - czy element nie moze byc pusty(czy jest wymagany) between - wartosc musi sie miescic w podanym zakresie in - wartosc musi byc identyczna z jedna sposrod podanych type - typ zmiennej (tj. string, boolean, double, integer) lub obiekt klasy własnej. Jeśli deklarujemy wlasny typ to jako type przekazujemy obiekt naszej klasy pamietajac ze musi ona zawietac metodę isValid(), oraz zmienna $errors oraz zmienna $value Wiecej w przykladzie dostepnm w paczce. Pobierz Czekam na komentarze oraz pomysły na rozwinięcie listy wymagań oraz ogólnie opcji validatora. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat jednak muszę to zintegrować z moja klasę do obsługi języków stąd te pseudokomunikaty typu "Too long" Nic prostszego (pisząc pierwszego posta sam zamieniałem "zmienne językowe" na zwykły tekst)Tutaj właśnie ważne jest to, aby w przypadku wystąpienia błędu nie zwracać tylko False (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Stała Kernel_Validate_Equal::NOT_EQUAL to string notEqual i w przypadku błeu zwracana jest tablica Kod Array( I klucz tablic to nazwa pola, zero - nazwa walidatora, jeden - wartość zmiennej, dwa - argumenty przekazane walidatorowi (np.: że ma być równe (equal) 1)[rules] => Array( [0] => 'notEqual', [1] => '0', [2] => Array( [0] => '1' ) ), [login] => Array( [0] => 'notAlnum', [1] => 'XSS <>"'&', [2] => Array() ) ) Mając te dane wystarczy: To już pisane z palca, ale chyba powinno być dobrze (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) (musisz sobie oczywiście to nieco mocniej rozbudować) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 06:41 |