一起使用命名空间和数据库

时间:2016-08-30 13:33:17

标签: php mysql namespaces

我以前使用数据库的方式是

class sitedb
{
    public $db = '';
    public $config;
    public $settings = array(
        'host'      => "localhost",
        'database'  => "database",
        'username'  => "user",
        'password'  => "pass",
    );

    public function __construct(){

        $this->db = new PDO(
            "mysql:host={$this->settings['host']};" .
            "dbname={$this->settings['database']};" .
            "charset=utf8",
            "{$this->settings['username']}",
            "{$this->settings['password']}"
        );

        $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    }
}

然后说我有一个使用此数据库的用户脚本

class User {
      public function __construct() {
             $this->db = new sitedb();
      }
}

现在我的代码中可以使用$resource = $this->db->db->prepare($query);

我的一位朋友最近建议我使用命名空间代替,每次都会比构造函数更容易,但不知道如何解决这个问题。

我有我的数据库类文件

namespace database;


class site
{
    public $db = '';
    public $config;
    public $settings = array(
        'host'      => "localhost",
        'database'  => "database",
        'username'  => "user",
        'password'  => "pass",
    );

    public function __construct(){

        $this->db = new PDO(
            "mysql:host={$this->settings['host']};" .
            "dbname={$this->settings['database']};" .
            "charset=utf8",
            "{$this->settings['username']}",
            "{$this->settings['password']}"
        );

        $this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    }

}

class auth
{

}

我的思考过程是我可以使用

$resource = \database\site::????

现在我对如何实际连接感到茫然。我希望我能够很好地阐明我的问题,以展示我所追求的目标。我只是不确定如何使用它来实际连接到数据库。

0 个答案:

没有答案