Почему realpath не работает на CentOS?

Простой автозагрузчик, который работал у меня на винде:

spl_autoload_register(
    function($class_address)
    {
        $path = __DIR__ . DIRECTORY_SEPARATOR . $class_address . '.php';

        require_once realpath($path);
    },
    true, true
);


Залил всё на CentOS - выдаёт ошибку, что класс не найден. Начинаю разбираться:

$path = __DIR__ . DIRECTORY_SEPARATOR . $class_addr . '.php';

        echo 'Original path is: ', $path . PHP_EOL;

        $path = realpath($path);

        echo 'After realpath: ' . var_export($path, true);


Original path is: /var/www/vendor/asoft\kernel\Kernel.php
After realpath: false


То есть realpath на Linux не жуёт обратные слеши. Что за дела? Функция ведь специально создана, чтобы преобразовывать слеши в нужные для текущего окружения (на Windows / преобразовывался в \).
  • Вопрос задан
  • 256 просмотров
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
А где написано что realpath должен слэши исправлять?
В Linux вполне нормально иметь файл с именем "\kernel\Kernel.php"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы