|
@@ -0,0 +1,45 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace App\Repository;
|
|
|
+
|
|
|
+use PDO;
|
|
|
+use PDOException;
|
|
|
+
|
|
|
+class Singleton
|
|
|
+{
|
|
|
+ private static $instance;
|
|
|
+ private $login = 'root';
|
|
|
+ private $pass = '';
|
|
|
+ private $dbname = 'school';
|
|
|
+ private $host = '127.0.0.1';
|
|
|
+ private $charset = 'utf8';
|
|
|
+ public $pdo;
|
|
|
+
|
|
|
+ public static function getInstance()
|
|
|
+ {
|
|
|
+ if (null === self::$instance) {
|
|
|
+ self::$instance = new self();
|
|
|
+ }
|
|
|
+ return self::$instance;
|
|
|
+ }
|
|
|
+
|
|
|
+ private function __construct()
|
|
|
+ {
|
|
|
+ $dsn = "mysql:host={$this->host};dbname={$this->dbname};charset={$this->charset}";
|
|
|
+ $opt = [
|
|
|
+ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
|
|
|
+ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
|
|
|
+ PDO::ATTR_EMULATE_PREPARES => false,
|
|
|
+ ];
|
|
|
+ try {
|
|
|
+ $this->pdo = new PDO($dsn, $this->login, $this->pass, $opt);
|
|
|
+ } catch (PDOException $e) {
|
|
|
+ die('Подключение не удалось: ' . $e->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private function __clone()
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
+}
|