Автозагрузка классов по стандарту PSR-0

пытаюсь создать сайт с применением MVC паттерна. Но при загрузке классов пишет, что данный класс не найден. Fatal error: require(): Failed opening required 'Controllers\Controller.php' (include_path='.') in W:\domains\RITG-files\System\Autoload.php on line 14

Файл автозагрузки

<?php
function autoload($className)
{
    $className = ltrim($className, '\\');
    $fileName  = '';
    $namespace = '';
    if ($lastNsPos = strrpos($className, '\\')) {
        $namespace = substr($className, 0, $lastNsPos);
        $className = substr($className, $lastNsPos + 1);
        $fileName  = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
    }
    $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) .'.php';

    require $fileName;
}
spl_autoload_register('autoload');
?>

Файл маршрутизации приложения

<?php
namespace System;
//Простейший маршрутизатор ! Направляющий пользователя по url к нужному классу и методу.
Class App
{
public static function run()
{
    //Получить URL запроса
    $path = $_SERVER['REQUEST_URL'];
    //Разбиваем URL на части
    $pathParts = explode('/', $path);
    //Получить имя контроллера
    $controller = $pathParts[1];
    //Получить метод из контроллера
    $action = $pathParts[2];
    //Формируем пространство имен для наших контроллеров
    $controller = 'Controllers\\'.$controller.'Controller';
    //Наименование метода
    $action = 'action'.ucfirst($action);

    if(!class_exists($controller)){
        throw new \ErrorException('Controller does not exist');
    }

    //Создаем объект класса $controller
    $objController = new $controller;

    if(!method_exists($objController, $action))
    {
        throw new \ErrorException('Action does not exist');
    }
    //Вызываем действие контроллера
    $objController ->$action();
}
}
?>

Не могу разобраться в чем дело, но грешу на файл маршрутизации, так как не корректно читает мои классы


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