# upstream/trunk/includes/libraries/cmb2-grid/DesignPatterns/Singleton.php

UpStream: a Project Management Plugin for WordPress, version trunk. 37 lines.

- Page: https://pluginprobe.com/plugins/upstream/trunk/code/includes/libraries/cmb2-grid/DesignPatterns/Singleton.php
- Raw: https://pluginprobe.com/plugins/upstream/trunk/raw/includes/libraries/cmb2-grid/DesignPatterns/Singleton.php
- Modified: 2024-05-22T12:40:54+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/upstream/trunk/code/includes/libraries/cmb2-grid/DesignPatterns/Singleton.php#L10-L20`.

```php
<?php

namespace Cmb2Grid\DesignPatterns;

/**
 * Description of Singleton.
 *
 * Pablo Pacheco <pablo.pacheco@origgami.com.br>
 */
if ( ! class_exists('\Cmb2Grid\DesignPatterns\Singleton')) {
    abstract class Singleton
    {
        abstract protected function __construct();

        /**
         * Returns the *Singleton* instance of this class.
         *
         * @staticvar Singleton $instance The *Singleton* instances of this class.
         *
         * @return Current_Class_Name
         */
        public static function getInstance()
        {
            static $instance = null;
            if (null === $instance) {
                $instance = new static();
            }

            return $instance;
        }

        final private function __clone()
        {
        }
    }
}

```
