DbConnect.php 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. namespace App\Repository;
  3. use PDO;
  4. use PDOException;
  5. class DbConnect
  6. {
  7. private static $db;
  8. private function __clone()
  9. {
  10. return true;
  11. }
  12. private function __wakeup()
  13. {
  14. return true;
  15. }
  16. private function __construct()
  17. {
  18. $config = (require_once('../config/config.php'))['db'];
  19. $dsn = "mysql:host={$config['host']};dbname={$config['dbname']};charset={$config['charset']}";
  20. $opt = [
  21. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  22. PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  23. PDO::ATTR_EMULATE_PREPARES => false
  24. ];
  25. try {
  26. $this->conPdo = new PDO($dsn, $config['login'], $config['pass'], $opt);
  27. } catch (PDOException $e) {
  28. die('Подключение не удалось: ' . $e->getMessage());
  29. }
  30. }
  31. public static function getConnect(){
  32. if (!self::$db) {
  33. self::$db = new DbConnect();
  34. }
  35. return self::$db->conPdo;
  36. }
  37. }