<?php
//The basic Code.
require_once("SplClassLoader.php");
$loader = new SplClassLoader('test', 'lib');
$loader->register();
use test\database\Connector;
?>
<?php
namespace test\database;
class Database {
}
?>
<?php
namespace test\database\Connector;
class Connector extends text\database\Database {
}
?>
我的文件结构如下所示
\
-index.php
-splclassloader.php
\测试
\测试\数据库
\测试\数据库\ database.php中
\测试\数据库\ Connector.php
它没有加载连接器类。 我在这里不明白的是什么。
答案 0 :(得分:1)
如果您尝试自动加载将文件夹映射到命名空间的类(我假设是这种情况),请确保您的命名空间仅包含文件夹名称并省略类名。另一方面,use
语句不会省略类名。
使用test\database\Connector
的命名空间然后定义类Connector
意味着您将使用以下方法实例化对象:
$connecter = new \test\database\Connector\Connector();
我猜你还有一个不需要的额外子名称空间Connector
。命名空间test\database\Connector
应为test\database
。