Maciej Żukiewicz
Programowanie obiektowe w PHP
Słowo kluczowe final pozwala nam kontrolować zasady dziedziczenia i przeciążania metod.
Zapamiętaj:
Używamy przeważnie gdy, tworzymy komponenty, które zostaną udostępnione innym programistom i chcemy zablokować możliwość rozszerzania klas lub nadpisywania metod.
Trait jest odpowiedzią na problem limitu pojedynczego dziedziczenia, które występuje w PHP.
O Trait's można myśleć jak o cechach, które można przypisać do klas.
Zapamiętaj:
Domyślna klasa dostępna w PHP.
Zapamiętaj:
Metody magiczne to zamknięty zbiór metod, które są automatycznie wywoływane przez PHP w specyficznych sytuacjach, a my jako programiści możemy je w dowolny sposób zaimplementować.
Zapamiętaj:
Nie możesz wywoływać ich bezpośrednio (odnosząc się do nich) - są one wywoływane automatycznie przez PHP w specyficznych sytuacjach;
Nie możesz definiować “własnych” metod o takich nazwach jak metody magiczne - ich nazwy są zarezerwowane;
Używane często
__construct()
__destruct()
__get()
__set()
__call()
__invoke()
__toString()
__clone()
__sleep()
__wakeup()
__isset()
__callStatic()
__set_state()
__debugInfo()
__unset()
__serialize() (dostępne od PHP 7.4)
__unserialize() (dostępne od PHP 7.4)
Używane rzadko
Przydatne linki dotyczące metod magicznych
9 Magic Methods in PHP (dzone.com)
16 Magic Methods That PHP Developers Must Know (tutorialdocs.com)
Obiekty są referencjami, a nie wartościami.
Przetestuj:
Dzięki zwracaniu odpowiedniego typu możemy łączyć metody w łańcuchy wywołań.
Interfejs jest to swojego rodzaju "umowa" opisująca jakie metody powinny posiadać klasy implementujące ten interfejs.
Zapamiętaj:
Klasy abstrakcyjne posiadają cechy interfejsów jak i zwykłych klas.
Zapamiętaj:
get_class()
instanceof
is_a()
class_exists()
method_exists()
interface_exists()
class_implements()
class_parents()
get_declared_interfaces()
Przydatne funkcje i operatory:
Zapamiętaj:
O przestrzeniach nazw możesz myśleć jak o folderach na dysku, dzięki którym w różnych folderach możesz:
a) mieć pliki (a w PHP funkcje i klasy) o tej samej nazwie;
b) utrzymywać porządek na swoim dysku (a w PHP w swoim kodzie)
Zapamiętaj:
Zunifikowany Język modelowania
Jest to język modelowania składający się z kilkunastu rodzajów diagramów, dzięki którym możemy opisać i modelować cały system, a dokładnie struktury i procesy w nim zachodzące.
Dokumentacja (796 stron!)
Zapamiętaj: