File: /home/retile.ru/public_html/system/library/Spout/Common/Singleton.php
<?php
namespace Box\Spout\Common;
/**
 * Class Singleton
 * Defines a class as a singleton.
 *
 * @package Box\Spout\Common
 */
trait Singleton
{
    protected static $instance;
    /**
     * @return static
     */
    final public static function getInstance()
    {
        return isset(static::$instance)
            ? static::$instance
            : static::$instance = new static;
    }
    /**
     * Singleton constructor.
     */
    final private function __construct()
    {
        $this->init();
    }
    /**
     * Initializes the singleton
     * @return void
     */
    protected function init() {}
    final private function __wakeup() {}
    final private function __clone() {}
}