![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Nie wiedziałem czy wrzucać to do oceny, bo w sumie bardziej chodzi o to aby ktoś powierzchownie rzucił okiem, czy ide w dobrym kierunku. To moja pierwsza klasa - bazowa, bo chciałbym na niej m.in oprzec pozostałe klasy. starałem sie uprościć ją do minimum, link do Github'a jak widać dodanie nowej wartości do walidacji odbywa się w ten sposób:
sprawdzenie czy wszystkie pola przeszły poprawną walidacje wywołuje sie poprzez warunek if(!$validation->errors) odwołanie się do tablicy błędu, np : $validation->errors['imie'] <- bledy beda wyswietlane po kolei począwszy od pierwszej zadeklarowanej wartości do sprawdzenia błędów nie ma, wszystko działa, ale jak juz wspomniałem, to moja pierwsza samodzielnie napisana klasa, tak więc chciałbym was prosić o to, abyście mogli podpowiedzieć mi czy robie jakieś błędy lub czego mógłbym jeszcze użyć do niezawodności tej klasy Ten post edytował gitbejbe 30.09.2013, 12:30:18 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Zastanów się co robisz, Validator (sprawdzanie poprawności wprowadzonych danych) czy też Filter (przefiltrowanie wprowadzonych danych i w miarę możliwości zwrócenie poprawnego formatu). Tutaj masz racje. filtry typu striptags/htmlspecialchar nie powinny tutaj istnieć. Jednak ten skrypt bedzie stosowany tylko dla moich potrzeb i nie robie tego "komercyjnie". Sens tych 2 metod jest znikomy - a nawet żadny, ale dodałem je - przyjnajmiej tymczasowo, dla zwykłego picu : ) Powinienem o tym był wspomnieć... Cytat Ponadto, pomysł z dodawaniem metody i jednoczesnym aktualizowaniu tablicy statycznej nie trafiony. Przecież możesz sobie ustalić że metody walidacji to takie które zaczynają się od _valid__nazwa i przy pomocy call i callStatic wybierać odpowiednie metody (ewentualnie method_exists podczas walidacji zbiorowej). co do call to chcialem własnie uniknąć wywoływania walidatorów w style " ->required() ->max(12) -> is_int() itd. Osobiscie bardziiej przypada mi do gustu wywoływanie jedenej metody i w niej podawania walidatorów. Tablice statyczna powstała po to aby móc wszystko ustawwić na poczatku dokumentu w klasie abstrakcyjnej. Wcześniejsza wersja opierała się na case'ach i to faktycznie było nietrafione rozwiązanie - co nie oznacza, ze obecna metoda jest elegancka. Tak to jednak sobie wymyśliłem Cytat ECHO w klasie? A nie ładniej by było, gdyby te błędy były zbierane do obiektu/zmiennej w tej klasie? Wtedy dajesz metodę do pobrania wszystkich komunikatów i wyświetlasz je w odpowiednim formacie, nie narzuconym z góry. To samo z wartościami. Tutaj też masz racje. Obsługe błędów musze jeszcze dopracowac. A pomysł jak najbardziej fajny : ) Cytat Dlaczego postanowiłeś postawić na tablicę z nazwami walidatorów, które umieściłeś w Engine, natomiast sama deklaracja metod jest w klasie dziedziczącej? powód taki sam jaki podałem wczesniej. Chciałem aby cały mechanizm obsługi był tylko w jedenej klasie abstrakcyjnej, tak abym w klasie dziedziczącej mógł skupić sie tylko na metodach walidujących : ) Pisząc ten skrypt na nowo, kierowąłem się głównie tym co sam mi napisałeś w tym temacie: Cytat - przede wszystkim, klasa główna zawiera tylko logikę i w miarę zwiększania ilości walidatorów nie zwiększasz ilości linii w pliku, co wpływa na czytelność, - łatwiej jest znaleźć miejsce modyfikacji algorytmu konkretnego walidatora - wygodniej tworzy się metody pomocnicze - prostsza identyfikacja błędów (id walidatora, albo nazwa klasy) i ich "ludzka" definicja dokladnie wlasnie zrobiłem to w ten deseń : ) - logika tylko w jednej klasie - oddzielilem walidatory do osobnej klasy i moge łatwo je edytowac oraz rozwiac w razie potrzeby - metody pomocnicze rowniez mozna latwo dopisać - tutaj tez sie kierowałem Twoja wczesniejszą wypowiedzią. Oddzieliłem pobranie tablic z danymi wejsciowymi (POST/GET) od ustawienia walidatorów dla tej tablicy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 22:53 |