PHP在使用名称空间时需要文件

PHP在使用名称空间时需要文件,php,namespaces,Php,Namespaces,我不熟悉PHP名称空间。当我使用自动加载时有一个问题 ROOT/Application/Instance.php <?php namespace Application; class Instance { public static $_database; public function __construct() { self::$_database = new \Application\Module\Database(); }

我不熟悉PHP名称空间。当我使用自动加载时有一个问题

ROOT/Application/Instance.php

<?php

namespace Application;

class Instance {

    public static $_database;

    public function __construct() {
        self::$_database = new \Application\Module\Database();
    }

    public static function database() {
        return self::$_database;
    }

    public static function ID(){
        return md5(uniqid(mt_rand(), TRUE) . mt_rand() . uniqid(mt_rand(), TRUE));
    }

    public static function autoload($_className) {
        $thisClass = str_replace(__NAMESPACE__.'\\', '', __CLASS__);
        $baseDir = __DIR__;
        if (substr($baseDir, -strlen($thisClass)) === $thisClass) {
            $baseDir = substr($baseDir, 0, -strlen($thisClass));
        }
        $_className = ltrim($_className, '\\');
        $fileName  = $baseDir;
        $namespace = '';
        if ($lastNsPos = strripos($_className, '\\')) {
            $namespace = substr($_className, 0, $lastNsPos);
            $_className = substr($_className, $lastNsPos + 1);
            $fileName  .= str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
        }
        $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $_className) . '.php';
        if (file_exists($fileName)) {
            require $fileName;
        }
    }

    public static function registerAutoloader() {
        spl_autoload_register(__NAMESPACE__ . "\\Instance::autoload");
    }

}
<?php

namespace Application\Module;

include 'FluentPDO/FluentPDO.php';

class Database extends Module {

    public static $_instance;

    public function __construct() {
        if(self::$_instance === NULL) {
            self::$_instance = new FluentPDO(new PDO("mysql:host=8273639.mysql.rds.aliyuncs.com;dbname=db", 'name', 'password'));
        }
    }

}
当我运行此命令时:

new \Application\Instance();
我得到了这个错误:

Fatal error: Class 'Application\Module\FluentPDO' not found in /mnt/www/airteams_com/public/Application/Module/Database.php on line 13
我很确定
'FluentPDO/FluentPDO.php'
是存在的。错误显示文件的错误路径。正确的路径是
'ROOT/Application/Module/FluentPDO/FluentPDO.php'


那么,在我的情况下,如何使用无命名空间类呢?谢谢。

使用名称空间时,必须完全限定每个类,除非它是当前名称空间的子类

因此,FluentPDO可能位于根命名空间上,这意味着您需要像这样访问它:

self::$_instance = new \FluentPDO(new \PDO("mysql:host=8273639.mysql.rds.aliyuncs.com;dbname=db", 'name', 'password'));