расширение класса с помощью пространства имен в переполнении стека

Я пытаюсь написать свой первый фреймворк с пространствами имен.
У меня проблема с расширением класса Controller.
я получил

Неустранимая ошибка: класс ‘Controller’ не найден в xxx / src / controllers / index.php в строке 3

Контроллер выглядит так:

namespace src\libs;
class Controller
{}

А вот мой индексный класс в src/controllers/

namespace src\controllers;
use src\libs as libs;
class Index extends libs\Controller
{}

Моя автозагрузка:

function autoLoader($class)
{
$class = str_replace('\\', '/', $class);
if (file_exists('./' . $class . '.php')) {
require( './' . $class . '.php');
} else {
$class = explode('/', $class);
if (file_exists( LIBS . end($class) . '.php')) {
require( LIBS . end($class) . '.php');
} else {
echo 'Critical error!!';
exit;
}
}
}

LIBS = ./src/libs/

AutLoader работает, потому что он включает в себя файл с классом Controller, я не получаю ошибку. Я понятия не имею, почему это не работает.

0

Решение

У меня работает нормально

Файл: /var/www/html/PHP/Randoms/src/libs/Controller.php

<?php
namespace src\libs;
class Controller
{

}

Файл: /var/www/html/PHP/Randoms/src/controllers/Index.php

namespace src\controllers;
use src\libs as libs;
spl_autoload_register(function($classname){
$classPath=str_replace("\\", "/", $classname);
$filePath= dirname(__FILE__)."/../../".$classPath.".php";
if(file_exists($filePath))
{
require_once $filePath;
}
});
class Index extends libs\Controller
{}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector