Standard automatycznego ładowania PSR-4
Poznaj sposób mapowania segmentów przestrzeni nazw na ścieżki katalogów przez PSR-4
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 automaticallyAwaryjna 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/?
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
- Deklarowanie i używanie przestrzeni nazw
- Zagnieżdżone przestrzenie nazw i aliasy
- Standard automatycznego ładowania PSR-4
- Rejestrowanie mechanizmów autoloadingu