0Pricing
PHP Academy · Урок

Регистрация автозагрузчиков

Настройте spl_autoload_register и автозагрузку на основе Composer

«Регистрация автозагрузчиков» — бесплатный урок PHP Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.

spl_autoload_register

spl_autoload_register() регистрирует обратный вызов, который PHP вызывает при использовании неопределённого класса. Несколько автозагрузчиков выполняются в порядке регистрации.

Базовый пользовательский автозагрузчик

Минимальный автозагрузчик в стиле PSR-4, написанный вручную:

<?php
spl_autoload_register(function (string $class): void {
    $prefix  = 'App\\';
    $baseDir = __DIR__.'/src/';
    if (!str_starts_with($class, $prefix)) return;
    $rel  = substr($class, strlen($prefix));
    $file = $baseDir.str_replace('\\', '/', $rel).'.php';
    if (file_exists($file)) require $file;
});

Несколько автозагрузчиков

Регистрируйте по одному автозагрузчику для каждого префикса пространства имён, чтобы каждый обрабатывал только собственные классы.

<?php
spl_autoload_register(fn($c) => loadFromSrc($c));
spl_autoload_register(fn($c) => loadFromLib($c));

autoload.php Composer

На практике Вам почти никогда не придётся писать собственный автозагрузчик. Composer создаёт автозагрузчик, охватывающий все пакеты и Ваши сопоставления PSR-4.

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

dump-autoload

После добавления новых классов или изменения настроек автозагрузки в composer.json пересоздайте автозагрузчик: composer dump-autoload.

Оптимизированный автозагрузчик

composer dump-autoload --optimize создаёт статическую карту классов, устраняя сканирование файловой системы во время выполнения. Рекомендуется для рабочей среды.

Автозагрузка файлов (глобальные функции)

Используйте ключ files в composer.json для файлов вспомогательных функций с глобальной областью видимости. Они подключаются всегда.

// composer.json
{
  "autoload": {
    "files": ["src/helpers.php"]
  }
}

Порядок выполнения автозагрузчиков

Автозагрузчики вызываются в порядке регистрации. Если первый не может найти класс, он возвращается без ошибки, и PHP пробует следующий.

Отладка проблем с автозагрузкой

Распространённые причины ошибки «Class not found»: не выполнена команда dump-autoload, неверный регистр в имени файла или класса либо несовпадение префикса пространства имён в composer.json.

Производительность PSR-4 и карты классов

PSR-4 выполняет обращения stat к файловой системе. Карта классов использует поиск в хеш-таблице — он быстрее, но требует пересоздания при добавлении каждого нового класса.

Проверка автозагрузки

Проверьте автозагрузчик:

<?php
require 'vendor/autoload.php';
$obj = new \App\Services\EmailService();
echo get_class($obj); // App\Services\EmailService

Краткое содержание

spl_autoload_register лежит в основе всей автозагрузки PHP. Composer берёт на себя основную работу — просто выполняйте dump-autoload при добавлении новых классов.

Быстрая проверка

Какая команда пересоздаёт автозагрузчик Composer?

Часто задаваемые вопросы

Урок «Регистрация автозагрузчиков» бесплатный?

Да — полный текст урока «Регистрация автозагрузчиков» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.

Чему я научусь в уроке «Регистрация автозагрузчиков»?

Настройте spl_autoload_register и автозагрузку на основе Composer Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать PHP Academy?

Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Регистрация автозагрузчиков»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке PHP Academy?

Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

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

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