Автозагрузка классов с помощью Composer настраивается в файле composer.json. Composer поддерживает два основных типа автозагрузки: psr-4 и psr-0, а также автозагрузку файлов (files) и определение классов по их расположению (classmap).
Наиболее современный и рекомендуемый способ — psr-4. Он связывает префикс namespace с директорией.
json
psr-4: Для классов, начинающихся с MyNamespace\, Composer будет искать их в директории src/. Для классов с префиксом AnotherNamespace\ – в lib/.files: Позволяет загружать указанные файлы при каждом запросе. Часто используется для неклассовых функций или констант.classmap: Сканирует указанные директории или файлы, находит все классы и строит статическую карту путей к ним. Эффективен для библиотек без явных неймспейсов или с нестандартной структурой.После внесения изменений в composer.json необходимо выполнить команду для генерации или обновления файлов автозагрузки:
bash
Эта команда создает или обновляет файл vendor/autoload.php, который затем включается в начальную точку выполнения скрипта PHP (index.php или аналогичный):
php
Composer автоматически создает функцию spl_autoload_register, которая будет пытаться загрузить класс, когда он понадобится, используя информацию из сгенерированных файлов автозагрузки.