目录中找不到类

时间:2015-03-25 11:17:02

标签: php namespaces

我在命名空间中组织了一些类,如下所示:

的src /碱/ BaseObject.php

<?php
namespace API\bases;

use \API\system\Database as Database;

class BaseObject {
    protected $db = null;

    public function __construct() {
        $this->db = Database::instance();
    }

}

的src /对象/ user.php的

<?php
namespace API\objects;

class User extends \API\bases\BaseObject {

}

的src / autoload.php

<?php
spl_autoload_register(
    function($class) {
        $path_parts = explode("\\", $class);

        if ($path_parts[0] == 'API') {
            array_shift($path_parts);
        }
        require(__DIR__ . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $path_parts) . ".php");
    }
);

我已经实现了其他类,但在这种情况下,当我实例化一个User对象时,它会返回这个致命的:

Fatal error: Class 'API\bases\BaseObject' not found in /realpath/to/api/src/objects/User.php on line 4

User.php:4class User extends \API\bases\BaseObject {行。对我来说,它没有意义,因为我也以同样的方式在另一个类继承中使用它。你看到我跳过了什么吗?

编辑:值得注意的是我手动要求上课,并且告诉could not redeclare class,所以无论如何它似乎都被发现了。

1 个答案:

答案 0 :(得分:0)

我不知道为什么,因为我已经重写了三次类,但看起来在BaseObject类中有一个空间给出了问题。我删除了BaseObject和开放花括号之间的空格,它有效。