public static function dispatch ($url){
if (self::matchRoute($url)){
echo $controller = 'app\controllers\\' . self::$route['prefix'] . self::$route['controller'] . 'Controller';
if (class_exists($controller)) {
$controllerObject = new $controller(self::$route);
$action = self::lowerCamelCase(self::$route['action']) . 'Action';
if (method_exists($controllerObject, $action)) {
$controllerObject -> $action();
}else {
throw new \Exception("Method $controller::$action not found", 404);
}
}else {
throw new \Exception("Controller $controller not found", 404);
}
}else {
throw new \Exception("Page not found", 404);
}
}
if (class_exists($controller)) не видит мой класс: app\controllers\MainController.php, и перебрасывает на: else {throw new \Exception("Controller $controller not found", 404).
В браузере я получаю:
app\controllers\MainController
An error has occurred
Error Code: Exceptions
Error text: Controller app\controllers\MainController not found
Error file: /opt/lampp/htdocs/cryptoriot/classhgpd/core/Router.php
Мой класс:
app\controllers\MainController.php
<?php
namespace classapp\controllers;
class MainController
{
}
Моя система:
Eclipse IDE for PHP Developers (includes Incubating components)
Version: 2021-12 (4.22.0)
Build id: 20211202-1639
OS: Linux, v.5.15.12-1-MANJARO, x86_64 / gtk 3.24.31
Java vendor: N/A
Java runtime version: 17.0.1+12
Java version: 17.0.1
php 7.4.27-1
Я перепровери код много раз. Пробовал разные варианты написания. Перечитал всё что google имеет на эту тему. Ещё раз прочитал описание классов в php. Прочитал документацию eclipse...
Что бы я не делал class_exists() тупо не видит мой класс и всё.