HEX
Server: LiteSpeed
System: Linux premium321.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: apkvhicq (1211)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //home/apkvhicq/s92bet.pk/wp-content/plugins/gp-premium/inc/class-singleton.php
<?php
/**
 * GenerateBlocks Pro singleton class.
 *
 * @package Generateblocks
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

/**
 * The Singleton class.
 */
abstract class GeneratePress_Pro_Singleton {
	/**
	 * Instance.
	 *
	 * @access private
	 * @var array Instances
	 */
	private static $instances = array();

	/**
	 * The Singleton's constructor should always be private to prevent direct
	 * construction calls with the `new` operator.
	 */
	protected function __construct() { }

	/**
	 * Singletons should not be cloneable.
	 */
	protected function __clone() { }

	/**
	 * Singletons should not be restorable from strings.
	 *
	 * @throws Exception Cannot unserialize a singleton.
	 */
	public function __wakeup() {
		throw new Exception( 'Cannot unserialize a singleton.' );
	}

	/**
	 * Initiator.
	 *
	 * @return object initialized object of class.
	 */
	public static function get_instance() {
		$cls = static::class;

		if ( ! isset( self::$instances[ $cls ] ) ) {
			self::$instances[ $cls ] = new static();
		}

		return self::$instances[ $cls ];
	}
}