Zasady projektowania obiektowego – SLAP

SLAP (Single Level of Abstraction Principle) jest uniwersalną zasadą programowania, która dotyczy nie tylko języków programowania ogólnego zastosowania, ale także języków specjalizujących się w tworzeniu stron internetowych, takich jak PHP.

W PHP możemy stosować zasadę SLAP, aby pisać czysty i czytelny kod. Przykład implementacji tej zasady w PHP może wyglądać następująco:

				
					function calculate_total_cost($price, $quantity, $tax_rate) {
    $subtotal = $price * $quantity;
    $tax_amount = $subtotal * $tax_rate;
    $total_cost = $subtotal + $tax_amount;
    return $total_cost;
}

				
			

W powyższym kodzie funkcja calculate_total_cost() oblicza łączny koszt produktu na podstawie ceny, ilości i stawki podatku. Ta funkcja ma tylko jeden cel, a mianowicie obliczenie kosztu, i jest napisana na jednym poziomie abstrakcji. Nie ma tam żadnych zbędnych instrukcji, komentarzy czy instrukcji warunkowych. Cała logika obliczeń jest zawarta wewnątrz funkcji, dzięki czemu jest łatwiej ją zrozumieć i utrzymać.

Przykład złamania zasady SLAP w PHP:

				
					function validate_user($user_id, $user_name, $user_email) {
    if (empty($user_id)) {
        return false;
    } else if (empty($user_name)) {
        return false;
    } else if (empty($user_email)) {
        return false;
    } else {
        // Perform user validation logic here
    }
}

				
			

W powyższym przykładzie funkcja validate_user() jest napisana na różnych poziomach abstrakcji. Ma ona trzy cele – sprawdzenie, czy user_id, user_name i user_email są puste, a następnie walidacja użytkownika. Ta funkcja powinna być podzielona na dwie funkcje – jedna do sprawdzania pustych wartości, a druga do walidacji użytkownika. Zgodnie z zasadą SLAP, każda funkcja powinna mieć tylko jeden cel.