我正在尝试显示来自Main类的消息,但由于某些原因找不到该类,即使它在index.php
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',
);
班级Main.php
位于目录app/Http/Controllers
namespace App\Http\Controllers;
class Main
{
function index(){
echo "Main Index";
}
}
该类的实例是由我的Route.php
创建的,但是现在我尝试将其直接加载到index.php
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;
}
}
任何提示都会有所帮助,请