PHP Academy · Lekcja

Standard automatycznego ładowania PSR-4

Poznaj sposób mapowania segmentów przestrzeni nazw na ścieżki katalogów przez PSR-4

Lekcja 3 z 413 kroki

Standard automatycznego ładowania PSR-4 to bezpłatna lekcja PHP Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej PHP Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs PHP Academy zawiera 4 lekcji w sumie.

Czym jest automatyczne ładowanie?

Automatyczne ładowanie oznacza, że PHP automatycznie ładuje plik klasy przy pierwszym użyciu tej klasy — nie trzeba ręcznie używać require.

Przed automatycznym ładowaniem

Bez automatycznego ładowania każdy plik zaczynał się od dziesiątek wywołań require_once — rozwiązanie to było podatne na błędy i trudne w utrzymaniu.

Reguła PSR-4

PSR-4 mapuje prefiks przestrzeni nazw na katalog bazowy. Przy prefiksie App\ → src/: App\Models\User jest ładowana z pliku src/Models/User.php.

Wzór mapowania

Należy usunąć prefiks, zamienić pozostałe backslashe na separatory katalogów i dodać .php.

App\Services\Payment\Stripe → src/Services/Payment/Stripe.php

Sekcja autoload w composer.json

Mapowania PSR-4 należy definiować w pliku composer.json. Po wprowadzeniu zmian należy uruchomić composer dump-autoload.

// composer.json
{
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}

Wiele prefiksów przestrzeni nazw

Projekt może zawierać wiele mapowań PSR-4 — jest to przydatne do oddzielania przestrzeni nazw testów.

// composer.json
{
  "autoload":     { "psr-4": { "App\\": "src/" } },
  "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }
}

Nazwa klasy = nazwa pliku

Nazwa klasy musi dokładnie odpowiadać nazwie pliku (w systemie Linux wielkość liter ma znaczenie). class UserService musi znajdować się w pliku UserService.php.

Jedna klasa na plik

PSR-4 wymaga dokładnie jednej klasy, jednego interfejsu lub jednego traita w każdym pliku. Wiele definicji uniemożliwia automatyczne ładowanie.

PSR-4 a PSR-0

PSR-0 (przestarzały standard) używał podkreśleń w nazwach klas jako separatorów katalogów. PSR-4 jest prostszy i stanowi obecny standard.

Wygenerowany autoloader

Po wykonaniu composer dump-autoload Composer zapisuje plik vendor/autoload.php. Należy załadować go raz w punkcie wejścia aplikacji.

<?php
require __DIR__.'/vendor/autoload.php';

$user = new App\Models\User(); // autoloads automatically

Awaryjna classmap

Composer generuje również classmap dla plików, które nie są zgodne z PSR-4. Jest to przydatne w przypadku starszego kodu.

Praktyczny układ katalogów

src/\n  Models/User.php        → App\Models\User\n  Http/Controllers/\n    UserController.php   → App\Http\Controllers\UserController

Szybkie sprawdzenie

Gdzie PSR-4 znajdzie App\Services\Mailer, jeśli prefiks App\\ jest mapowany na src/?

Bezpłatny start

Ucz się PHP dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
49
Lekcje
195

Często zadawane pytania

Czy lekcja „Standard automatycznego ładowania PSR-4” jest bezpłatna?

Tak — pełny tekst „Standard automatycznego ładowania PSR-4” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu PHP Academy, przejdź na CoddyKit PRO. Kurs PHP Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Standard automatycznego ładowania PSR-4”?

Poznaj sposób mapowania segmentów przestrzeni nazw na ścieżki katalogów przez PSR-4 Ćwiczysz PHP Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć PHP Academy?

Nie wymagamy żadnego doświadczenia. PHP Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Standard automatycznego ładowania PSR-4”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji PHP Academy?

Tak. Każda lekcja PHP Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Deklarowanie i używanie przestrzeni nazw
  2. Zagnieżdżone przestrzenie nazw i aliasy
  3. Standard automatycznego ładowania PSR-4
  4. Rejestrowanie mechanizmów autoloadingu
← Powrót do PHP Academy