Мы все любим 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.Если хочется чуть больше гибкости — можно добавить поддержку нескольких базовых директорий, логирование ошибок или даже кэширование найденных путей.
📲 Мы в MAX
👉 @php_lib
