Conexao.php

<< Click to Display Table of Contents >>

Navigation:  Outros > CRUD com persistencia Orientada Objeto > persistencia >

Conexao.php

Previous pageReturn to chapter overviewNext page

<?php
 
namespace persistencia;
 
use \PDO;
use \PDOException;
 
class Conexao {
 
    const OPCOES = [PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
        PDO::ATTR_CASE => PDO::CASE_NATURAL
    ];
 
    private static $instancia;
 
    /**
     * @return PDO
     */
    public static function getConexao(): PDO {
        if (empty(self::$instancia)) {
            try {
                self::$instancia = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_BASEDB_USERDB_PASSself::OPCOES);
            } catch (PDOException $ex) {
                die("Erro ao conectar " . $ex->getMessage());
            }
        }
 
        return self::$instancia;
    }
 
    // não permite instanciar com new
    final private function __construct() {
        
    }
 
    // não permite clonar
    final private function __clone() {
        
    }
 
    public static function desconectar() {
        self::$instancia = null;
    }
 
}