Renderlife
9/5/2018 - 12:41 PM

Автозагрузка c поиском

Спер с Агимы у Коли, что то там он пытается искать если файл по заданному пути не задан но хрен бы знал что! Мне кажется оно не работает. Он пытается найти файл в папке Class/Name/ если задано Class_name

Тут показана суть работы namespace с _ http://sandbox.onlinephpfunctions.com/code/c68afc02e0891e026fe80430e7a372e57c682c14

</php
function my_autoload($className) {
    // Пропускаем классы ядра
    if (strpos($className, "Bitrix") === true) {
        return false;
    }
    $filename = __DIR__ . "/include/classes/" . strtr($className, '_\\', '//') . ".php";
    if (file_exists($filename)) {
        require $filename;
    } else {
        $resultPath = __DIR__ . '/include/classes/';
        $parts = explode('/', strtr($className, '_\\', '//') . '.php');
        foreach ($parts as $part) {
            if (file_exists($resultPath . DIRECTORY_SEPARATOR . $part)) {
                $resultPath .= DIRECTORY_SEPARATOR . $part;
                continue;
            }
            $part = strtolower($part);
            if (file_exists($resultPath . DIRECTORY_SEPARATOR . $part)) {
                $resultPath .= DIRECTORY_SEPARATOR . $part;
                continue;
            }
            return;
        }

        if (file_exists($resultPath)) {
            include_once($resultPath);
        }

    }
}  

spl_autoload_register('my_autoload');