initial commit
This commit is contained in:
52
includes/rest-api/Utilities/SingletonTrait.php
Normal file
52
includes/rest-api/Utilities/SingletonTrait.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* Singleton class trait.
|
||||
*
|
||||
* @package WooCommerce\Utilities
|
||||
*/
|
||||
|
||||
namespace Automattic\WooCommerce\RestApi\Utilities;
|
||||
|
||||
/**
|
||||
* Singleton trait.
|
||||
*/
|
||||
trait SingletonTrait {
|
||||
/**
|
||||
* The single instance of the class.
|
||||
*
|
||||
* @var object
|
||||
*/
|
||||
protected static $instance = null;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
protected function __construct() {}
|
||||
|
||||
/**
|
||||
* Get class instance.
|
||||
*
|
||||
* @return object Instance.
|
||||
*/
|
||||
final public static function instance() {
|
||||
if ( null === static::$instance ) {
|
||||
static::$instance = new static();
|
||||
}
|
||||
return static::$instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent cloning.
|
||||
*/
|
||||
private function __clone() {}
|
||||
|
||||
/**
|
||||
* Prevent unserializing.
|
||||
*/
|
||||
final public function __wakeup() {
|
||||
wc_doing_it_wrong( __FUNCTION__, __( 'Unserializing instances of this class is forbidden.', 'woocommerce' ), '4.6' );
|
||||
die();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user