Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /**
  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. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement