![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 73 Pomógł: 0 Dołączył: 19.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam dla Was do sprawdzenia początek rejestracji. Nie ma tu jeszcze zapisu do bazy danych, ale mam gotową walidację loginu i hasła. Został e-mail, ale to będzie analogicznie to loginu. Podaję kod:
Możliwe, że gdzieś "ify" mogą zachodzić na siebie, ale to poprawię. Chodzi o koncepcje walidacji, jak ją poprawić/uoptymalnić? Ten post edytował tukan 14.07.2012, 22:52:05 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli zerwiesz z syndromem - "Co nie ja napisałem, to niedobre" to możesz odkryć że ogólnodostępne frameworki PHP takie jak cakePHP lub Symfony 1/2 posiadają bardzo rozbudowane i wygodne walidatory.
Serio, szkoda sie bawic w wynajdowanie koła na nowo. Wbrew pozorom nie nauczysz się podczas tego zbyt dużo. Ja myślę że walidacja jest paskudnie zrobiona. Wszystkie walidatory masz na stałe wpisane w metode validForm. Gdy przybędzie ci tego trochę, to kod wewnatrz tej metody rozrosnie sie na 30 ifów i case-ów. Trzeba robic rzeczy generycznie, tak by nie robic copy-paste jak bedziesz chcial to uzyc w innym miejscu. Powinieneś utworzyć przynajmniej 2 klasy oparte na interfejsach podobnych do tych: interface ValidatorEngine { function validateForm(Form $form); function addValidator(Validator $validator); } interface Validator { function doValidate(ValidateFieldData $data); } w klase ValidateFieldData pakujesz wszystkie dane jakie musisz przeslac z formularza do walidatora, z metody doValidate zwracasz rezultat walidacji, dodajesz walidatory do validatorEngine i wstrzykujesz tam formularz. Mozesz ten system pocisnac dalej i rozszerzyc interfejs Validator o metode w stylu getJavascript() która zwroci kod javascript potrzebny do przeprowadzenia danej walidacji rowniez po stronie klienta dla responsywnosci, i za pomoca validatorEngine uzbierany w tej sposob JS doklejac do widokow formularzy. A wtedy ci wyjdzie system walidatorow jaki masz w symfony i wyjdzie na to ze nie warto bylo tego wszystkiego pisac, by sobie zwalidowac pare formularzy. Ten post edytował Orzeszekk 14.07.2012, 23:37:59 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:07 |