Сегодня я покажу вам, как быстро и удобно организовать автозагрузку классов в PHP без использования Composer.
Мы все любим Composer, но бывают ситуации, когда он просто неуместен — например, в небольшом проекте, скрипте или легаси-коде, где Composer не использовался изначально. В таких случаях можно сделать свою простую, но эффективную автозагрузку.
Вот базовый пример:
spl_autoload_register(function ($class) {
$baseDir = __DIR__ . '/src/';
$classPath = str_replace('\\', '/', $class) . '.php';
$file = $baseDir . $classPath;
if (file_exists($file)) {
require $file;
}
});Что здесь происходит:
- spl_autoload_register регистрирует анонимную функцию, которая будет вызываться при попытке использовать неизвестный класс.
- Класс App\Services\MailService превратится в путь src/App/Services/MailService.php
- Если файл существует — он подключается.
Это суперудобный способ структурировать код и избавиться от бесконечных require.
Если хочется чуть больше гибкости — можно добавить поддержку нескольких базовых директорий, логирование ошибок или даже кэширование найденных путей.
👉 @php_lib