Programowanie obiektowe

Klasy, obiekty, dziedziczenie, interfejsy, traity, enumy, przestrzenie nazw i wyjątki — kompletne OOP w PHP 8.

  1. Klasy i obiekty Czym jest klasa i obiekt w PHP — definiowanie klasy, właściwości, metody, tworzenie instancji przez new i dostęp przez ->.
  2. Konstruktor i property promotion Automatyczna inicjalizacja obiektu przez __construct oraz skrót constructor property promotion dostępny od PHP 8.
  3. Widoczność i enkapsulacja Modyfikatory public, private i protected chronią dane klasy. Gettery i settery dają kontrolowany dostęp — to sedno enkapsulacji.
  4. Dziedziczenie i klasy abstrakcyjne extends i parent:: — twórz hierarchie klas, nadpisuj metody. Klasy abstract definiują kontrakt, ale nie można ich instancjonować.
  5. Interfejsy interface i implements — definiowanie kontraktu bez implementacji. Jedna klasa może implementować wiele interfejsów jednocześnie.
  6. Traity trait i use — współdzielenie gotowego kodu między klasami bez dziedziczenia. Rozwiązanie konfliktów nazw przez insteadof i as.
  7. Enumy (PHP 8.1) Typy wyliczeniowe enum od PHP 8.1 — pure i backed enum, cases(), from() rzucające ValueError oraz tryFrom() zwracające null.
  8. Przestrzenie nazw i autoloading namespace i use — unikaj kolizji nazw klas w dużych projektach. Ręczny autoloading przez spl_autoload_register jako wstęp do PSR-4 z Composerem.
  9. Wyjątki try, catch, finally i throw — obiektowa obsługa błędów. Hierarchia wbudowanych wyjątków i tworzenie własnych klas dziedziczących po Exception.