Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [skrypt] Validator
SHiP
post
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

  1. <?php
  2. include 'validator.php';
  3.  
  4. $validators = Array(
  5. '*' => Array(
  6. 'required' => true
  7. ),
  8. 'title' => Array(
  9. 'minlength' => 5,
  10. 'maxlength' => 80,
  11. ),
  12. 'subtitle' => Array(
  13. 'minlength' => 5,
  14. 'required' => false,
  15. )
  16. );
  17.  
  18. $dane = Array('title' => 'jakis tytul');
  19.  
  20. $input = new MoheboInput($dane);
  21. $input -> setValidators($validators);
  22. echo 'title => '.(integer) $input -> isValid('title').'<br/>';
  23. echo 'subtitle => '.(integer) $input -> isValid('subtitle').'<br/>';
  24. ?>


* 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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SHiP
post
Post #2





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


1) dzięki wielkie za link, przyda się (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) . Widziałem kiedyś w manualu funkcje mb_ ale jakoś nigdy nie wnikałem co czego one służą (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

2,3) Ostatnio zauwazyłem identyczny rodzaj określania komunikatów błędów w Zendzie i przyznam, że rozwiązanie jest dosyć ciekawe i bardzo prawdopodobne, że wprowadzę je u siebie(jednak muszę to zintegrować z moja klasę do obsługi języków stąd te pseudokomunikaty typu "Too long")

Dzięki za pomysł z sameAs i equal (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Pomyślę jak to fajnie złożyć. Pseudojęzyków nie będę wprowadzał. Imho zbędny bajer.

PS: nieczytelność kodu to rzecz względna (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Widzę u Ciebie np. tabulacje przed "=>" w deklaracjach tablic i lekko inny system wcięć. Dodatkowo nie stosujesz spacji między " -> " itd itd.

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:54