![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 335 Pomógł: 34 Dołączył: 9.11.2005 Skąd: Wrocław Ostrzeżenie: (10%) ![]() ![]() |
Hej, chce poddać ocenie swoją klasę walidującą dane. Powiedzcie, co jest dobrze, a co źle. Co do robić, co przerobić. Proszę o opinie (IMG:style_emoticons/default/smile.gif)
Przykład użycia:
Ten post edytował in5ane 29.10.2013, 17:07:57 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
obiektówką zajmuje sie od niedawna, a ta klasa to pierwsze co napisałem w oop. Lecę teraz na codeigniterze i nie daje sobie ręki uciąć bo tylko rzuciłem okiem na ich skrypt walidacji i wydaje mi się, że schemat jest podobny - po za tym, że zasady określa się w jednym stringu rodzielonym znakiem | oraz pomijając pozostałe funkcje pomocnicze. Walidatory uruchamia wtedy skrypt a nie ja osobiście odwołując się do danego walidatora (na początku własnie tego typu napisałem skrypt, ale później przerobiłem go na to bo ktoś tutaj napisał, ze tak będzie lepiej).Tej klasie dużo brakuje i jestem tego świadom ale działać działa i spełnia swoją role bez zarzutu i można ją łatwo rozszerzać, a wkleiłem ją tylko po to aby autor tematu mógł sobie ją porównać
Będę wdzięczny jeśli powiesz mi co jest głównie nie tak i jak powinien wyglądać prawdziwy schemat takiego skryptu. Z chęcią przyjmę każdą rade : ) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
obiektówką zajmuje sie od niedawna, a ta klasa to pierwsze co napisałem w oop. Lecę teraz na codeigniterze i nie daje sobie ręki uciąć bo tylko rzuciłem okiem na ich skrypt walidacji i wydaje mi się, że schemat jest podobny - po za tym, że zasady określa się w jednym stringu rodzielonym znakiem | oraz pomijając pozostałe funkcje pomocnicze. Walidatory uruchamia wtedy skrypt a nie ja osobiście odwołując się do danego walidatora (na początku własnie tego typu napisałem skrypt, ale później przerobiłem go na to bo ktoś tutaj napisał, ze tak będzie lepiej).Tej klasie dużo brakuje i jestem tego świadom ale działać działa i spełnia swoją role bez zarzutu i można ją łatwo rozszerzać, a wkleiłem ją tylko po to aby autor tematu mógł sobie ją porównać Będę wdzięczny jeśli powiesz mi co jest głównie nie tak i jak powinien wyglądać prawdziwy schemat takiego skryptu. Z chęcią przyjmę każdą rade : ) OOP to zabawa w klocki. Muszą być one łatwo nakładane, zdejmowane, wymieniane. Klasy powinny być tworzone tak, aby nie trzeba było ingerować w ich kod dodając kolejne funkcjonalności, tylko bawić się klockami. Zarówno w Twojej jak i @insane'a klasach nie ma możliwości manipulowania walidatorami. Są one wstawione na sztywno i koniec... nic nie zmienisz bez ingerencji w istniejący już kod. Jedyną możliwością byłoby rozszerzanie klasy za każdym razem jak chcesz dodać kolejny walidator. Ale jak wtedy będziesz nazywał dzieci klasy? - Validator -> ValidatorWithNip -> ValidatorWithNipAndIdentityCardNumber -> validatorWithNipAndIdentityCardNumberAndImageSize... itd? Zupełnie bez sensu. Poza tym jak będziesz chciał z tego schematu tylko kolejne walidatory Nip i ImageSize bez IdentityCardNumber, to co zrobisz? Nic. Przykładowa implementacja mająca sens: Powinien zostać stworzony jakiś menadżer walidatora:
Teraz należy stworzyć interfejs dla przymusów:
Możemy teraz tworzyć dowolne przymusy implementując stworzony interfejs:
I teraz możemy dowolnie manipulować przymusami dla dowolnych pól:
Wszystko pisane z palca, więc mogą być literówki, ale chodzi o zasadę działania. Budowa klockowa (IMG:style_emoticons/default/wink.gif) Ten post edytował pyro 5.11.2013, 22:07:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 20:55 |