PHP Academy · Урок

Стандарт автозагрузки PSR-4

Разберитесь, как PSR-4 сопоставляет сегменты пространства имён с путями каталогов

Урок 3 из 413 шагов

«Стандарт автозагрузки 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 — локальная установка не требуется.

Все уроки этого курса

  1. Объявление и использование пространств имён
  2. Вложенные пространства имён и псевдонимы
  3. Стандарт автозагрузки PSR-4
  4. Регистрация автозагрузчиков
← Назад к PHP Academy