PHP命名空间和类

时间:2012-10-24 14:51:38

标签: php namespaces

我有两个类,都在不同的命名空间中。当我尝试从一个命名空间创建对象时,我得到错误

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']);
        }
    }
}

1 个答案:

答案 0 :(得分:3)

除非您使用的是正确配置的自动加载器,否则您仍需要包含“文件1”才能正常使用。

否则 - 您的UserModel如何知道在哪里找到DrDatabase课程?