我的自动加载器加载了类文件,但为类提供了致命错误

时间:2016-01-03 11:08:56

标签: php class namespaces spl-autoload-register

我有我的run.php文件(在后端执行的文件):

<?php
spl_autoload_register(function ($class) {
    $class = str_replace('\\', '/', $class);
    echo 'classes/' . $class . '/' . $class . '.php';
    require 'classes/' . $class . '/' . $class . '.php';
}); 

try {
    echo "General Greeting - Begin run\n";
    $main = new Main();
} catch(\Exception $e) {
    echo "Normal: " . $e->getMessage();
} catch(\PDOException $e) {
    echo "PDO: " . $e->getTraceAsString();
}

我的Main()类位于./classes/Main/Main.php(相对于run.php)

<?php
namespace Main;

class Main {
    public function __construct() {
        echo "test";
    }
}

当我执行run.php时,这是我的控制台输出:

  

一般问候语 - 开始运行

     

类/主要/ Main.php

     

致命错误:Class&#39; Main&#39;在第9行的run.php中找不到

它需要正确的类文件和所有,所以我的想法可能是我对命名空间做错了,但是,我重新阅读文档并且不能,因为我的生活,弄清楚为什么它会给我这个错误。

0 个答案:

没有答案