Programowanie obiektowe
Klasy, obiekty, dziedziczenie, interfejsy, traity, enumy, przestrzenie nazw i wyjątki — kompletne OOP w PHP 8.
- 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 ->.
- Konstruktor i property promotion Automatyczna inicjalizacja obiektu przez __construct oraz skrót constructor property promotion dostępny od PHP 8.
- Widoczność i enkapsulacja Modyfikatory public, private i protected chronią dane klasy. Gettery i settery dają kontrolowany dostęp — to sedno enkapsulacji.
- Dziedziczenie i klasy abstrakcyjne extends i parent:: — twórz hierarchie klas, nadpisuj metody. Klasy abstract definiują kontrakt, ale nie można ich instancjonować.
- Interfejsy interface i implements — definiowanie kontraktu bez implementacji. Jedna klasa może implementować wiele interfejsów jednocześnie.
- Traity trait i use — współdzielenie gotowego kodu między klasami bez dziedziczenia. Rozwiązanie konfliktów nazw przez insteadof i as.
- 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.
- 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.
- 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.