Example of quick singlethon implementation in PHP

<?php 
abstract class Singleton {
    
    // protected static $INSTANCE;

   
    /**
     * Protected constructor to prevent creating a new instance of the
     * @return void
     */
    final private function __construct() {
    }

    /**
     * Private clone method to prevent cloning of the instance
     * @return void
     */
    final private function __clone() {
    }
    
    /**
     * Private unserialize method to prevent unserializing 
     * @return void
     */
    final private function __wakeup()
    {
    }

    /**
     * The reference to *Singleton* instance of this class
     * @return Singleton
     */
    final public static function getInstance() {
        return isset(static::$INSTANCE) ? static::$INSTANCE : static::$INSTANCE = new static;
    }

}

////

class AB extends Singleton {
    protected static $INSTANCE;
}

class BA extends Singleton {
    protected static $INSTANCE;
}

$obj = AB::getInstance();

$obj2 = BA::getInstance();


var_dump($obj === AB::getInstance()); // bool true
var_dump($obj === $obj2); // bool false

Availible also in https://gist.github.com/yuksbg/9d981ea6baf0bd8f2d92