View difference between Paste ID: FvKLVD6v and FANZJL75
SHOW: | | - or go back to the newest paste.
1
<?php
2
 
3
/**
4-
* Classe TConnection
4+
* Classe Connection
5
* Design Patter utilizado na conexão: Singleton.
6
*/
7
class Connection
8
{
9
        /*
10
         * Única instância da conexão do PDO.
11
         */
12
        private static $conn;
13
 
14
        /*
15
         * Método construtor
16
         * Não existirão instâncias de TConnection, por
17
         * isso o construtor deve ser marcado como privado.
18
         */
19
        private function __construct() { }
20
 
21
        /*
22
         * Método clone
23
         * Método está privado para evitar a clonagem.
24
         */
25
        private function __clone() { }
26
       
27
        /*
28
         * Método getInstance
29
         * Única interface que é disponibilizado nesta classe.
30
         */
31
        public static function getInstance($driver)
32
        {
33
                if(!isset(self::$conn))
34
                {
35
                        $type = 'mysql';
36
 
37
                        switch($type)
38
                        {
39
                                case 'mysql':                  
40
                                        $dsn = array('arg1' => "mysql:host={$host};port={$port};dbname={$name};charset=utf8" ,
41
                                                     'arg2' => "{$user}",
42
                                                     'arg3' => "{$pass}");
43
                                break;
44
                                // (...)
45
                        }
46
                       
47
                        self::$conn = new PDO($dsn ['arg1'], $dsn ['arg2'], $dsn ['arg3'],
48
                                                array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
49
                        self::$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
50
                }
51
               
52
        return self::$conn;
53
    }
54
}
55
?>