Singleton design pattern, uygulamanın çalışma anında yalnızca 1 nesne(instance) yaratılmasını sağlamasıdır.
Uygulamada aynı objeyi birçok kez kullanmak gerekiyor ise her seferinde tekrar tekrar instance oluşturmasını engelleyebiliriz. Bunu singleton design pattern ile static kullanarak sağlayabiliriz.
Eğer nesne daha önceden oluşturulmuş ise o nesne üzerinden, eğer oluşturulmamış ise yeni bir nesne oluşturarak yaşamına devam eder.
In memory, RAM üzerinden çalışır.
Private constructor yapılması önerilir.
class DbController
{
private static $instance;
public static $db;
private function __construct()
{
$this->db = new PDO("mysql:host=localhost;dbname=***;", "root", "");
}
public static function getInstance()
{
if (!isset(self::$instance)) {
self::$instance = new DbController;
}
return self::$instance;
}
public function dbConnection()
{
if (!isset(self::$db)) {
self::$db = new PDO("mysql:host=localhost;dbname=***;", "root", "");
}
return self::$db;
}
}
$cont1 = DbController::getInstance();
$cont2 = DbController::getInstance();
var_dump($cont1);
var_dump($cont2);
if ($cont1 === $cont2) echo 'Same';
Top comments (0)