HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/mobilech/alliancelaptoptraining.com.np/wp-content/plugins/tutor/classes/Singleton.php
<?php
/**
 * An abstract base class to make Singleton class
 *
 * @package Tutor\Classes
 * @author Themeum <support@themeum.com>
 * @link https://themeum.com
 * @since 3.0.0
 */

namespace TUTOR;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

/**
 * Class Singleton
 */
abstract class Singleton {

	/**
	 * Store instances for each child class.
	 *
	 * @var array
	 */
	private static $instances = array();

	/**
	 * Constructor prevent for new instance.
	 *
	 * @access protected
	 */
	protected function __construct() { }

	/**
	 * Prevent object clone
	 *
	 * @access protected
	 */
	protected function __clone() { }

	/**
	 * Get instance of class.
	 *
	 * @return static
	 */
	public static function get_instance() {
		$class = static::class;
		if ( ! isset( self::$instances[ $class ] ) ) {
			self::$instances[ $class ] = new static();
		}
		return self::$instances[ $class ];
	}

	/**
	 * Reset a class instance
	 *
	 * @return void
	 */
	public static function reset_instance() {
		$class = static::class;
		if ( isset( self::$instances[ $class ] ) ) {
			unset( self::$instances[ $class ] );
		}
	}
}