PHP автозагрузка и оптимизация Composer autoloader для production

PHP · 19.04.2026
PHP автозагрузка и оптимизация Composer autoloader для production

Как работает автозагрузка PHP

Автозагрузчик PHP автоматически подключает файл класса при первом обращении к нему. Без автозагрузчика нужно было бы вручную писать require для каждого файла. Composer генерирует автозагрузчик на основе правил из composer.json.

Типы автозагрузки в Composer

ТипОписаниеПроизводительность
PSR-4Пространства имён → директорииХорошая
PSR-0Устаревший стандартХуже PSR-4
classmapЗаранее составленная карта классовЛучшая (production)
filesВсегда подключаемые файлы

Оптимизация автозагрузчика для production

# Базовая оптимизация — генерирует classmap для всех PSR-4 классов
composer dump-autoload --optimize

# С отключением dev-зависимостей
composer dump-autoload --optimize --no-dev

# APCu кэш (самый быстрый)
composer dump-autoload --apcu --optimize --no-dev

APCu autoloader (максимальная скорость)

APCu кэширует результаты поиска классов в памяти. Требует расширение php-apcu:

sudo apt install php8.2-apcu

# В composer.json:
{
    "config": {
        "apcu-autoloader": true
    }
}

Конфигурация autoload в composer.json

{
    "autoload": {
        "psr-4": {
            "App\\": "src/",
            "Tests\\": "tests/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "files": [
            "src/helpers.php"
        ]
    }
}

Laravel: полная оптимизация для production

# Оптимизировать все кэши
php artisan optimize

# Что делает optimize:
# php artisan config:cache
# php artisan route:cache
# php artisan view:cache
# composer dump-autoload --optimize
Результат оптимизации autoloader: вместо поиска файла по файловой системе при каждом запросе — мгновенный поиск по массиву в памяти. Ускорение составляет 20–40% для приложений с большим числом классов.

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

# Посмотреть сгенерированный classmap
cat vendor/composer/autoload_classmap.php | head -20

# Размер autoloader файлов
du -sh vendor/composer/
← Назад в базу знаний Задать вопрос поддержке