![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 16.11.2012 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witajcie ponownie!
Tym razem, w ramach rozbudowy firmowego bloga, chcielibyśmy podzielić się bardzo prostą, ale równie użyteczną klasą pozwalającą na wygodną obsługę parametrów funkcji, które zanadto się "rozrosły". Przykładowo, przypuśćmy że mamy taką oto funkcję/metodę:
Aby ją wywołać, zamierzając zmienić np. tylko jeden domyślny parametr timeout, musimy przebrnąć przez wszystkie parametry:
Prosiłoby się użycie rozwiązania znanego z JavaScript, gdzie wystarczy przekazać jako jedyny parametr odpowiedni obiekt. Z pomocą przychodzi nasz klasa Params. Dzięki niej wywołanie ma postać:
Więcej o klasie i jej użyciu tutaj: http://www.implico.pl/klasa_params_wygodna...od_w_php,8.html P.S. Jeśli istnieje już podobne, być może lepsze rozwiązanie - dajcie znać. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@pyro bo ja nie zakładałem, że coś jest wymagane. Jak chcesz takiego założenia, to musisz dodać czwarty parametry $required=false, bo tak Twoja poprawka teraz to wymusza na użytkowniku zawsze wymagalnośc parametru, a wcale tak być nie musi (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
@pyro bo ja nie zakładałem, że coś jest wymagane. Jak chcesz takiego założenia, to musisz dodać czwarty parametry $required=false, bo tak Twoja poprawka teraz to wymusza na użytkowniku zawsze wymagalnośc parametru, a wcale tak być nie musi (IMG:style_emoticons/default/wink.gif) @nosporku, sama konstrukcja i pojęcie "funkcji" w programowaniu z założenia może mieć obowiązkowe lub opcjonalne parametry, więc wypadałoby to uwzględnić. Poza tym co wymusza? Nic nie wymusza
Poza tym jak już wspomniałem - według mnie w ogóle tworzenie takiej klasy to bezsens. No chyba, że używana jest funkcja z 30 parametrami, ale czy natknęliście się kiedyś na taką funkcję? Poza tym idąc dalej tokiem myślenia, klasę tą można przerobić tak, że nie trzeba podawać w metodzie Params::Get argumentu $params Ten post edytował pyro 6.02.2013, 13:09:18 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 07:14 |