![]() |
![]() ![]() |
![]() |
![]()
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 -------------------- "The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 20:49 |