![]() |
![]() |
![]()
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: Zarejestrowani Postów: 273 Pomógł: 52 Dołączył: 3.02.2013 Skąd: Przemyśl Ostrzeżenie: (0%) ![]() ![]() |
Moim zdaniem już samo pisanie tak wieloparametrowych funkcji/metod jest złą praktyką
A tworzenie "hooków", aby sobie to ułatwić to już całkiem herezje Jeśli funkcja zaczyna posiadać sporą ilość parametrów to pierwszy sygnał, aby zadać sobie pytanie czy to nie jest odpowiedni moment, aby utworzyć klasę zamiast pisać kolejne i kolejne parametry . Takie wieloparametrowe funkcje w większości (nie zawsze) są już tak rozbudowane, że spokojnie mogą stać się jakimś osobnym libem A jeżeli już to zazwyczaj projektuje się funkcje/metody w taki sposób, aby móc łatwo zarządzać ich parametrami Przykładowo dlaczego flagi true/false są parametrami przed integerem który na pewno będzie używany częściej niż wspomniane flagi, które z kolei w 90% mogą mieć wartość domyślną ? Ten post edytował mstraczkowski 13.02.2013, 03:47:05 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 02:53 |