PHP spl_autoload_register не находит классы без слешей

Только недавно начал вникать в тему namespace и на use в php. Столкнулся с проблемой с использованием webdriver selenium. Так как мой сервер не позволяет установить composer из за нехватки ресурсов, было принято решение подключать все файлы самому. Нашел тут https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md функцию для подключения всех классов и namespace.

Указал путь к каталогу классов и вроде бы все хорошо.

function libraries($class) {
    $class = ltrim($class, '\\');
    $file = false;
    $namespace = false;
    
    if($string = strrpos($class, '\\')) {
        $namespace = substr($class, 0, $string);
        $class = substr($class, $string + 1);
        $file  = ROOT . DS . 'system' . DS . 'libraries' . DS . str_replace('\\', DS, $namespace) . DS;
    }
    
    $file .= str_replace('_', DS, $class) . '.php';
    
    require $file;
}

Но при попытке вызвать класс из корневой директории, выбивает ошибку

require(WebDriverExpectedCondition.php): failed to open stream: No such file or directory

То есть тот файл который находится в корневой папки оно не подключает. Те классы которые указаны подобным методом

use WebDriver\Remote\DesiredCapabilities;
use WebDriver\Remote\RemoteWebDriver;

Работают хорошо.

Помогите с решением, как правильно изменить функцию чтобы она читала как корневой каталог так и остальные. Буду рад любой помощи!


Ответы (0 шт):