Advertisement
Guest User

Untitled

a guest
Jul 10th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.19 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Class DatabaseConfig
  5.  */
  6. class DatabaseConfig
  7. {
  8.     // to powinno być ładowane z jakiegoś yamla czy czegoś
  9.     /**
  10.      * @var array
  11.      */
  12.     private $config = [
  13.         'db_server'   => '127.0.0.1',
  14.         'db_name'     => 'schema',
  15.         'db_user'     => 'user1',
  16.         'db_password' => 'password123',
  17.     ];
  18.  
  19.     /**
  20.      * @var string
  21.      */
  22.     public $dbServer;
  23.  
  24.     /**
  25.      * @var string
  26.      */
  27.     public $dbName;
  28.  
  29.     /**
  30.      * @var string
  31.      */
  32.     public $dbUser;
  33.  
  34.     /**
  35.      * @var string
  36.      */
  37.     public $dbPassword;
  38.  
  39.     /**
  40.      * DatabaseConfig constructor.
  41.      */
  42.     public function __construct()
  43.     {
  44.         $this->dbName = $this->config['db_name'];
  45.         $this->dbServer = $this->config['db_server'];
  46.         $this->dbUser = $this->config['db_user'];
  47.         $this->dbPassword = $this->config['db_password'];
  48.     }
  49.  
  50. }
  51.  
  52. /**
  53.  * Class DatabaseManager
  54.  */
  55. class DatabaseManager
  56. {
  57.  
  58.     /**
  59.      * @var DatabaseConfig
  60.      */
  61.     protected $dbConfig;
  62.  
  63.     /**
  64.      * @var PDO
  65.      */
  66.     protected $db;
  67.  
  68.     /**
  69.      * DatabaseManager constructor.
  70.      *
  71.      * @param DatabaseConfig $config
  72.      */
  73.     public function __construct(DatabaseConfig $config)
  74.     {
  75.         $this->dbConfig = $config;
  76.         $this->db = $this->preparePdo();
  77.     }
  78.  
  79.     /**
  80.      * @param string $sql
  81.      *
  82.      * @return array
  83.      */
  84.     public function getResults($sql)
  85.     {
  86.         $sql = $this->db->query($sql);
  87.         $result = $sql->fetchAll(PDO::FETCH_ASSOC);
  88.  
  89.         return $result;
  90.     }
  91.  
  92.  
  93.     /**
  94.      * @throws
  95.      * @return PDO
  96.      */
  97.     private function preparePdo()
  98.     {
  99.         try {
  100.             return new PDO(
  101.                 'mysql:host='.$this->dbConfig->dbServer.':dbname='.$this->dbConfig->dbName,
  102.                 $this->dbConfig->dbUser,
  103.                 $this->dbConfig->dbPassword,
  104.                 [
  105.                     PDO::ATTR_EMULATE_PREPARES => false,
  106.                     PDO::ATTR_ERRMODE          => PDO::ERRMODE_EXCEPTION,
  107.                 ]
  108.             );
  109.         } catch (PDOException $e) {
  110.             throw $e; //todo error handling
  111.         }
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement