Przestrzenie nazw i autoloading
Kurs PHP · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.
Namespace pomaga uporządkować klasy w większych projektach.
Jak to działa?
Przestrzenie nazw zapobiegają konfliktom nazw. use pozwala korzystać z krótszej nazwy klasy. W praktycznych aplikacjach automatyczne ładowanie klas najczęściej konfiguruje się przez Composer (PSR-4).
Przykład 1 — poznaj zapis
<?php
namespace App\Domain;
class Player {}
// W innym pliku: use App\Domain\Player;
// $player = new Player();
Przestrzeń nazw to element nazwy klasy, a nie automatyczne dołączenie pliku.
Przeczytaj kod linijka po linijce
class Player {}Definiujemy nowy typ obiektu lub umowę dotyczącą jego zachowania.
Brak wypisanego tekstu; kod deklaruje klasę we wskazanej przestrzeni nazw.
Przykład 2 — podobny problem, inne dane
Teraz przyjrzyj się drugiemu przykładowi. Zwróć uwagę na to, co zmieniło się w kodzie, a co w wyniku. Spróbuj przewidzieć rezultat przed przeczytaniem odpowiedzi.
<?php
namespace App;
class User {}
echo User::class;
App\User
Wróć do pierwszego przykładu, zmień jedną wartość i spróbuj samodzielnie przewidzieć wynik. Następnie uruchom kod i porównaj rezultat. W ten sposób nauczysz się nie tylko przepisywać instrukcje, ale rozumieć ich działanie.
Spróbuj samodzielnie
Utwórz klasę w namespace App\Services.
Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.