# wpfunnels/3.12.3/includes/core/traits/singleton-trait.php

WPFunnels – Funnel Builder for WooCommerce with Checkout &amp; One Click Upsell, version 3.12.3. 40 lines.

- Page: https://pluginprobe.com/plugins/wpfunnels/3.12.3/code/includes/core/traits/singleton-trait.php
- Raw: https://pluginprobe.com/plugins/wpfunnels/3.12.3/raw/includes/core/traits/singleton-trait.php
- Modified: 2022-12-22T09:56:42+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/wpfunnels/3.12.3/code/includes/core/traits/singleton-trait.php#L10-L20`.

```php
<?php
/**
 * Singleton trait
 * 
 * @package WPFunnels\Traits
 */
namespace WPFunnels\Traits;

trait SingletonTrait {

    private static $instance;

    protected function __construct() {}

    /**
     * Get class instance.
     *
     * @return object Instance.
     */
    public static function getInstance() {
        if (!self::$instance) {
            // new self() will refer to the class that uses the trait
            self::$instance = new self();
        }

        return self::$instance;
    }

	/**
	 * Prevent cloning.
	 */
	public function __clone() {}


	public function __wakeup() {
        wc_doing_it_wrong( __FUNCTION__, __( 'Unserializing instances of this class is forbidden.', 'wpfnl' ), '4.6' );
        die();
    }
}

```
