Php 类未找到,即使该类是在自动加载中定义的,但类“u exists”(“Main”)返回未找到

Php 类未找到,即使该类是在自动加载中定义的,但类“u exists”(“Main”)返回未找到,php,class,Php,Class,我试图显示一条来自类Main的消息,但由于某种原因,无法找到该类,即使它是在我的index.php的开头自动加载的 autoload.php 类Main.php位于目录app/Http/Controllers Main.php 这个类的实例是由我的Route.php创建的,但是现在我正试图将它直接加载到我的index.php index.php 这是你的电话号码 Route.php 任何提示都会有所帮助,请从中发表评论如果您使用别名导入带名称空间的类,请注意class_exists不会使用短的带

我试图显示一条来自类Main的消息,但由于某种原因,无法找到该类,即使它是在我的
index.php的开头自动加载的

autoload.php 类
Main.php
位于目录
app/Http/Controllers

Main.php 这个类的实例是由我的
Route.php
创建的,但是现在我正试图将它直接加载到我的
index.php

index.php 这是你的电话号码

Route.php
任何提示都会有所帮助,请

中发表评论如果您使用别名导入带名称空间的类,请注意class_exists不会使用短的带别名的类名-显然,只要将类名用作字符串,就只能使用完整的名称空间版本
您建议如何执行此操作?
如果(class_exists(uu NAMESPACE_u.'\'.\\'.“Main”){
在我的索引页中工作得很好,但是当我将其应用于Route.php时,id从那里就不起作用了,因为您位于不同的名称空间中,所以
u NAMESPACE_u
是一个不同的值。
return array(
    'App\\Http\\Controllers\\IndexController' => $baseDir . '/app/Http/Controllers/IndexController.php',
    'App\\Http\\Controllers\\Main' => $baseDir . '/app/Http/Controllers/Main.php',
    'App\\Http\\Core\\Controller' => $baseDir . '/app/Http/Core/Controller.php',
    'App\\Http\\Core\\Error' => $baseDir . '/app/Http/Core/Error.php',
    'App\\Http\\Core\\Load' => $baseDir . '/app/Http/Core/Load.php',
    'App\\Http\\Core\\Route' => $baseDir . '/app/Http/Core/Route.php',
    'App\\Http\\Core\\Url' => $baseDir . '/app/Http/Core/Url.php',
    'App\\Http\\Database\\Database' => $baseDir . '/app/Http/Database/Database.php',
    'App\\Http\\Database\\Model' => $baseDir . '/app/Http/Database/Model.php',
);
namespace App\Http\Controllers;

class Main
{
    function index(){
        echo "Main Index";
    }
}
namespace App\Http\Controllers;

use App\Http\Core\Route;

error_reporting(E_ALL);
ini_set("display_errors", 1);

require_once __DIR__ . '/../vendor/autoload.php';

if(class_exists("Main")){
    echo "The class is found!";
} else {
    echo "This class is not found";
}

new Route();
namespace App\Http\Core;

class Route
{
    private $routes;

    function __construct()
    {
        $this->routes = array();
        $route = $this->findRoute();
        if(class_exists(__NAMESPACE__ . '\\' . $route["controller"])){
            $conroller = new $route["controller"]();
            if(method_exists($conroller, $route["method"])){
                $conroller->$route["method"]();
            }else{
                Error::show(404);
            }
        }else{
            Error::show(404);
        }
    }

    private function routePart($route){
        if(is_array($route)){
            $route = $route["url"];
        }
        $parts = explode("/", $route);
        return $parts;
    }

    static function uri($part){
        $parts = explode("/", $_SERVER["REQUEST_URI"]);
        if($parts[1] == 'index.php'){
            $part++;
        }
        return (isset($parts[$part])) ? $parts[$part] : "";
    }

    private function findRoute(){
        foreach ($this->routes as $route){
            $parts = $this->routePart($route);
            $allMatch = true;
            foreach ($parts as $key => $value){
                if($value != "*"){
                    if(Route::uri($key) != $value){
                        $allMatch = false;
                    }
                }
            }
            if($allMatch){
                return $route;
            }
        }
        $uri_1 = Route::uri(1);
        $uri_2 = Route::uri(2);
        if($uri_1 == ""){
            $uri_1 = "Main";
        }
        if($uri_2 == ""){
            $uri_2 = "index";
        }
        $route = array(
            "controller" => $uri_1,
            "method" => $uri_2
        );
        return $route;
    }
}