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 | ?> |