Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: walidacja danych
Forum PHP.pl > Forum > PHP
zzeus
Mam kilka funkcji do walidacji danych, ale zastanawiam się czy nie przenieść tego do statycznej klasy. Zastanawiam się jednak co jest wydajniejsze i szybsze, wywoływanie funkcji czy metod ze statycznej klasy ?
thek
Myślę, że najszybsze będzie użycie gotowców z php 5 (no chyba, że to więcej niż jakieś typowe jak mail, url, IP itp) smile.gif Zobacz filter_var i stałe jakich można użyć w wywołaniu. Po co wymyślać koło od nowa tworząc klasę, skoro dostajemy w php5 gotowe narzędzie i na pewno przetestowane?
zzeus
No tak, jest taka możliwość, jednak zapis czasami jest zbyt długi, chce np. sprawdzić czy liczba jest typu int i jest większa od 0:
  1. filter_var($var, FILTER_VALIDATE_INT, array("options"=>array("min_range"=>1)))

Chyba że można prościej ?
thek
Ja osobiście nigdy nie przejmuję się długością kodu, za to jego czytelnością, pewnością i wydajnością. Jeśli twórcy wrzucili coś do zestawu funkcji, to mam pewność co do 2 i 3, a i to 1 zazwyczaj z racji odpowiedniego nazewnictwa nie jest problemem. Zauważ, że przy własnej funkcji musisz i tak zastosować dodatkowe parametry. Choćby niejawnie zaszyte wewnątrz niej. Ale by była uniwersalna, to i tak musisz dać parametr opcjonalny. A co, jeśli przyjdzie Ci dodać nowe warunki, jak ograniczenie górne? Znowu przeróbka funkcji własnej, dopisanie kawałka kodu itp. Czy więc zrobisz własną funkcję czy też użyjesz przygotowanej przez twórców to już kwestia preferencji. Choć dzięki gotowej oszczędzasz czas.

Myślę, że po to są one napisane by nie wymyślać koła na nowo. No i sam zapis de facto się skraca trochę. Nie musisz bowiem definiować, zmieniać metody czy funkcji tylko polegasz na sprawdzonym rozwiązaniu. Oczywiście to tylko moje zdanie i możesz go nie podzielać. Masz do tego pełne prawo. Wygodniej jednak operować na odpowiednich flagasz i strukturach dodatkowych, które modyfikują działanie uniwersalnej funkcji niż pisać ileś wersji jednej, zależnej od typu lub pisać innym kodem to samo i później zastanawiać nad warunkami by nie trafił się jakiś wyjątek winksmiley.jpg
zzeus
No tak, masz rację, Twoje argumenty mnie w 100% przekonały smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.