DEV Community

Cover image for Singleton Design Pattern in PHP
Maniruzzaman Akash
Maniruzzaman Akash

Posted on

Singleton Design Pattern in PHP

Singleton Design Pattern is a creational design pattern for Object Oriented Programming.
Singleton Pattern ensures that only one object of that class exists and provides a single point of access to it for any other code.

In these scenerios, we need a Singleton class instance -

  1. If we don't want to recreat any object second time, then we need to use a way like Singleton.
  2. If there is a possibility of Memory optimization and one specific class must call one time, then we use singleton pattern.

Creating a Singleton instance is very simple -

<?php class SingletonPatternExample { /** * Singleton Instance * * @var SingletonPatternExample */ private static $instance; /** * Private Constructor * * We can't use the constructor to create an instance of the class * * @return void */ private function __construct() { // Don't do anything, we don't want to be initialized } /** * Get the singleton instance * * @return SingletonPatternExample */ public static function getInstance() { if (!isset(self::$instance)) { self::$instance = new self(); } return self::$instance; } } 
Enter fullscreen mode Exit fullscreen mode

So, we can use this like -

<?php // We have to call getInstance() static method $singletonPattern = SingletonPatternExample::getInstance(); // Call our doSomething() method. $singletonPattern->doSomething(); 
Enter fullscreen mode Exit fullscreen mode

We can't call Singleton like this -

$singletonPattern = new SingletonPatternExample(); 
Enter fullscreen mode Exit fullscreen mode

It will throw an exception.

Get More example with Extendable Singleton Pattern with trait and re-usable pattern for PHP -

https://devsenv.com/tutorials/how-to-make-a-singleton-design-pattern-in-php

Top comments (0)