Singleton i obiektowe nawiązanie połączenia z bazą danych

Singleton jest wzorcem projektowym, który zwraca zawsze jedną instancję klasy, jest często używany do nawiązywania połączenia z bazą danych jeśli nie chcemy nawiązać jedno a nie kilka połączeń. Poniżej przedstawiam obiektowe nawiązywanie połączenia z bazą danych przy użyciu wzorca singleton z komentarzami objaśniającymi najważniejsze elementy: class Polaczenie { private static $oInstance = false; //przechowuje instancje klasy private $polaczenie; private $host = 'localhost'; private $uzytkownik = 'root'; private $haslo = ''; private $nazwa_bazy = 'baza'; //musi byc prywatny konstruktor: private function __construct ( ) { @$this->polaczenie = new mysqli($this->host, $this->uzytkownik, $this->haslo, $this->nazwa_bazy); if(mysqli_connect_errno()) { echo '

Wystąpił błąd połączenia: ' . mysqli_connect_error() . '

'; exit(); } else { $this-> polaczenie -> query("SET NAMES utf8"); $this-> polaczenie -> query("SET CHARACTER_SET utf8_unicode_ci"); } } //metoda, ktora tworzy instancje klasy tylko raz, jesli instancja klasy juz istnieje to jest zwracany jej obiekt: public static function getInstance() { if( self::$oInstance == false ) { self::$oInstance = new klasaPolaczenie(); } return self::$oInstance; } }