public function pdo()
    {
        if (!empty($this->pdo)) {
            return $this->pdo;
        }

        $dns = "{$this->driver}:";
        if (!empty($this->database)) {
            $dns .= "dbname={$this->database};";
        }
        if (!empty($this->hostname)) {
            $dns .= "host={$this->hostname};";
        }
        if (!empty($this->port)) {
            $dns .= "port={$this->port};";
        }

        $this->pdo = new \PDO($dns, $this->username, $this->password);
        return $this->pdo;
    }