Advertisement
Guest User

Untitled

a guest
Aug 7th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.33 KB | None | 0 0
  1. <?php
  2.     class Controller extends PDO
  3.     {
  4.            public $connection = null;
  5.            
  6.            public function __construct( $driver, $params )
  7.            {
  8.              /**
  9.               * Verifica se a Extenção do PDO Esta Carregada
  10.               */
  11.               if(!extension_loaded('PDO')){
  12.                   throw new LogicException('A Extenção do PDO Não Esta Carregada');
  13.               }
  14.                 /**
  15.                  * Monta o Array com os dados da conexção
  16.                  */
  17.                 $DSN = Array();
  18.                 if( isset( $params['hostname'] ) && isset( $params['database'] )){
  19.                    $DSN[] = 'host='.$params['hostname'];
  20.                    $DSN[] = 'dbname='.$params['database'];
  21.                 }
  22.                 if( isset( $params['username'] )){
  23.                    $user = $params['username'];
  24.                 }
  25.                 if( isset( $params['password'] )){
  26.                    $password = $params['password'];
  27.                 }
  28.                  /**
  29.                   * Captura o Tipo de Driver Que Deseja Connectar
  30.                   */
  31.                     switch( $driver ){
  32.                           case 'mysql':
  33.                             $this->connection = parent::__construct( 'mysql:'. implode(';', $DSN), $user, $password );
  34.                           break;
  35.                          
  36.                           case 'pgsql':
  37.                             $this->connection = parent::__construct( 'pgsql:'. implode(';',$DSN), $user, $password );
  38.                           break;
  39.                          
  40.                           case 'sqlite':
  41.                              $this->connection = parent::__construct( 'sqlite:'. $params['database'] );
  42.                           break;
  43.  
  44.                            /**
  45.                             * Falor Definido , Ou seja , se nenhum driver for definido
  46.                             * Dispara uma Excepção em Tempo de Execução, Informando Que não foi Definido um driver
  47.                             * Para uma conexção com o banco de dados
  48.                             */
  49.                              default:
  50.                                throw new RuntimeException('Não Foi Possivel Connectar ao Banco de Dados, Nenhum Driver Especificado');
  51.                              break;
  52.                          
  53.                     }
  54.                     /**
  55.                      * Seta os Atributos para um melhor desempenho
  56.                      * Como o ATTR_DEFAULT_FETCH_MODE
  57.                      * retorna um array com matrizes associativas
  58.                      * ao inves de matrizes numericas & associativas, caso queria um array com matrizes numericas
  59.                      * pode se usar na funçao o parametro PDO::FETCH_BOTH, PDO::FETCH_ARRAY, ou o tipo de fechamento que você
  60.                      * deseja .! , mais indicado e PDO Fetch Assoc , que e igual a um mysqli_fetch_assoc, mysql_fetch_assoc
  61.                      */
  62.                     parent::setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
  63.                     parent::setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
  64.                     parent::setAttribute(PDO::ATTR_TIMEOUT, 0);
  65.                 /**
  66.                  * Retorna a Conexção
  67.                  */
  68.                 return $this->connection;
  69.            }
  70.     }
  71. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement