You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace app\Core;
|
|
|
|
|
|
|
|
|
|
use PDO;
|
|
|
|
|
use PDOException;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Classe de Conexao com banco de dados.
|
|
|
|
|
*
|
|
|
|
|
* - Criar uma conexao de forma mais r<EFBFBD>pida.
|
|
|
|
|
* - Gerar logs da conexao.
|
|
|
|
|
* - Fazer consultas mais r<EFBFBD>pidas.
|
|
|
|
|
*
|
|
|
|
|
* @author Lucas Awade
|
|
|
|
|
*/
|
|
|
|
|
class Connect
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/** @conexao */
|
|
|
|
|
private static $instance;
|
|
|
|
|
|
|
|
|
|
const FILE_DB = __DIR__ . "/../../bd";
|
|
|
|
|
public static function setInstance($val)
|
|
|
|
|
{
|
|
|
|
|
self::$instance = $val;
|
|
|
|
|
}
|
|
|
|
|
public static function getInstance()
|
|
|
|
|
{
|
|
|
|
|
$cd = [];
|
|
|
|
|
if (empty(self::$instance)) {
|
|
|
|
|
$cd = self::filedb();
|
|
|
|
|
self::$instance = new PDO(
|
|
|
|
|
"pgsql:host={$cd['host_db']};port={$cd['porta_db']};dbname={$cd['base_db']}",
|
|
|
|
|
$cd['usuario'],
|
|
|
|
|
$cd['senha'],
|
|
|
|
|
[
|
|
|
|
|
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
|
|
|
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
|
|
|
|
|
PDO::ATTR_CASE => PDO::CASE_NATURAL
|
|
|
|
|
]
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (self::$instance) {
|
|
|
|
|
return self::$instance;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Pega as informacoes das credenciais no arquivos padrao "bd";
|
|
|
|
|
*/
|
|
|
|
|
private static function filedb()
|
|
|
|
|
{
|
|
|
|
|
if (file_exists(self::FILE_DB)) {
|
|
|
|
|
$credentials = array();
|
|
|
|
|
$contents = fopen(self::FILE_DB, 'r');
|
|
|
|
|
while (!feof($contents) && $contents) {
|
|
|
|
|
$str = fgets($contents);
|
|
|
|
|
$dados = explode('=', $str);
|
|
|
|
|
$credentials[strtolower($dados[0])] = trim(str_replace('"', '', $dados[1]));
|
|
|
|
|
}
|
|
|
|
|
fclose($contents);
|
|
|
|
|
$credentials = array_filter($credentials);
|
|
|
|
|
return $credentials;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|