Стандарт автозагрузки PSR-4
Разберитесь, как PSR-4 сопоставляет сегменты пространства имён с путями каталогов
«Стандарт автозагрузки PSR-4» — бесплатный урок PHP Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Что такое автозагрузка?
Автозагрузка означает, что PHP автоматически загружает файл класса при первом использовании этого класса — вручную выполнять require не нужно.
До появления автозагрузки
Без автозагрузки каждый файл начинался с десятков вызовов require_once — такой подход был ненадёжным и его было сложно поддерживать.
Правило PSR-4
PSR-4 сопоставляет префикс пространства имён с базовым каталогом. При заданном сопоставлении префикса App\ с src/: App\Models\User загружается из src/Models/User.php.
Формула сопоставления
Удалите префикс, замените оставшиеся обратные косые черты разделителями каталогов и добавьте .php.
App\Services\Payment\Stripe → src/Services/Payment/Stripe.php
Раздел autoload в composer.json
Определяйте сопоставления PSR-4 в composer.json. После изменений выполните composer dump-autoload.
// composer.json
{
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}Несколько префиксов пространств имён
В проекте может быть несколько сопоставлений PSR-4 — это удобно для разделения пространств имён тестов.
// composer.json
{
"autoload": { "psr-4": { "App\\": "src/" } },
"autoload-dev": { "psr-4": { "Tests\\": "tests/" } }
}Имя класса = имя файла
Имя класса должно в точности совпадать с именем файла (в Linux регистр имеет значение). class UserService должен находиться в UserService.php.
Один класс на файл
PSR-4 требует, чтобы в каждом файле находился ровно один класс, интерфейс или трейт. Несколько определений нарушают работу автозагрузки.
PSR-4 и PSR-0
PSR-0 (устаревший стандарт) использовал символы подчёркивания в именах классов как разделители каталогов. PSR-4 проще и является текущим стандартом.
Сгенерированный автозагрузчик
После выполнения composer dump-autoload Composer создаёт файл vendor/autoload.php. Подключите его один раз в точке входа.
<?php
require __DIR__.'/vendor/autoload.php';
$user = new App\Models\User(); // autoloads automaticallyРезервный вариант с картой классов
Composer также создаёт карту классов для файлов, которые не соответствуют PSR-4. Это удобно для устаревшего кода.
Практическая структура каталогов
src/\n Models/User.php → App\Models\User\n Http/Controllers/\n UserController.php → App\Http\Controllers\UserController
Быстрая проверка
Где PSR-4 найдёт App\Services\Mailer, если префикс App\\ сопоставлен с src/?
Изучай PHP с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 49
- Уроки
- 195
Часто задаваемые вопросы
Урок «Стандарт автозагрузки PSR-4» бесплатный?
Да — полный текст урока «Стандарт автозагрузки PSR-4» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Стандарт автозагрузки PSR-4»?
Разберитесь, как PSR-4 сопоставляет сегменты пространства имён с путями каталогов Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Стандарт автозагрузки PSR-4»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Объявление и использование пространств имён
- Вложенные пространства имён и псевдонимы
- Стандарт автозагрузки PSR-4
- Регистрация автозагрузчиков