Example #1
0
 /**
  * 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;
 }