| Server IP : 172.67.201.108 / Your IP : 216.73.216.11 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/home2/domains/new.davlermedia.com/wp-content/plugins/templately/includes/Utils/ |
Upload File : |
<?php
namespace Templately\Utils;
use Templately\Core\Module;
use Templately\Core\Platform;
abstract class Base {
/**
* Holds the plugin instance.
*
* @since 2.0.0
* @access protected
* @static
*
* @var Base
*/
private static $instances = [];
/**
* Disable class cloning and throw an error on object clone.
*
* The whole idea of the singleton design pattern is that there is a single
* object. Therefore, we don't want the object to be cloned.
*
* @access public
* @since 2.0.0
*/
public function __clone() {
// Cloning instances of the class is forbidden.
_doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'templately' ), '1.0.0' );
}
/**
* Disable un-serializing of the class.
*
* @access public
* @since 2.0.0
*/
public function __wakeup() {
// Un-serializing instances of the class is forbidden.
_doing_it_wrong( __FUNCTION__, esc_html__( 'Something went wrong.', 'templately' ), '1.0.0' );
}
/**
* Sets up a single instance of the plugin.
*
* @since 2.0.0
* @access public
* @static
*
* @return static An instance of the class.
*/
public static function get_instance( ...$args ) {
$module = get_called_class();
if ( ! isset( self::$instances[ $module ] ) ) {
self::$instances[ $module ] = new $module( ...$args );
}
return self::$instances[ $module ];
}
/**
* Determine the plugin module to make platform based things happened.
*
* @param string $id
* @return Platform|null
*/
public function platform( $id ){
$platform = Module::get_instance()->active( $id );
if( ! is_null( $platform ) ) {
return $platform;
}
return null;
}
}