-2
我有两个类,都在不同的命名空间。当我试图从一个命名空间中创建对象,然后我得到的错误PHP命名空间和类
Fatal error: Class 'Classes\DrDatabase' not found in C:\Path\to\workspace\AplicationName\app\models\Users.model.php on line XY
是不是我没有用PHP命名空间的理解吗?
两个文件:
FILE 1
namespace Classes;
class DrDatabase extends MssqlDatabase {
public function __construct() {
parent::createLog(__CLASS__);
parent::connect('ipaddress', 'database', 'user', 'password');
if ($this->link) {
$this->log->info('Connected');
}
}
}
FILE 2
namespace Model;
use \Classes\DrDatabase;
class UsersModel implements MasterModel {
private function get($id, $onlyEnabled) {
$db = new DrDatabase();
$getOnlyEnabled = 1;
if (!$onlyEnabled)
$getOnlyEnabled = 0;
$SQL = "SELECT * FROM table";
$resultSet = $db->query($SQL);
$result = array();
while ($row = mssql_fetch_assoc($resultSet)) {
$result[] = self::createUserObject($row['col1'],$row['col2']);
}
}
}
用前面的“\”来试试它,如下所示:'$ db = new \ DrDatabase();' – w00
您只能实例化已定义的类。在你的情况下,'\ Classes \ DrDatabase'的定义尚未加载。加载它,你很好。这正是错误信息告诉你的,而不是说谎。 – hakre
\类是名字空间的一个可怕的名字。它没有告诉你任何关于它包含的内容。 – GordonM