/** * O método getLink estabelece ou recupera uma conexão com o banco de dados, se não for passado nenhum parâmetro no contrutor o sistema buscará as variáveis * globais do arquivo de configuração do banco de dados (configDataBase.php) * <p> A passagem de parâmetros ocorre quando houver necessidade de alterar o banco de dados * da classe persistente. * @access public * @return mixed [conexão ao banco de dados] */ public function getLink() { # garante apenas uma instância da classe \PDO. if (!is_object($this->link)) { if (is_null($this->port)) { # Bloco executado se a porta de conexão for padrão $this->dsn = $this->driver . ":host=" . $this->host . ";dbname=" . $this->dbname; } else { # Bloco acessado se a porta de conexão for definida pelo usuário $this->dsn = $this->driver . ":host=" . $this->host . ";port=" . $this->port . ";dbname=" . $this->dbname; } try { # Cria uma conexão com o banco de dados $this->link = new \PDO($this->dsn, $this->username, $this->passwd, $this->options); } catch (\PDOException $e) { /* * Se ocorrer excessão, os dados são passados para a classe de controle * de excessão do framework. Essa classe gerencia os dados que são passados * na interface do usuário e fornece as opções para solução do problema. */ Exception::debugException($e->getMessage(), $e->getCode(), $e->getTrace()); } $this->link->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); } return $this->link; }