Простой автозагрузчик, который работал у меня на винде:
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 / преобразовывался в \).