Initial commit.
This commit is contained in:
27
includes/trait-singleton.php
Normal file
27
includes/trait-singleton.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* @package CleverOgre
|
||||
* @subpackage OgreIssuu
|
||||
* @version 0.1.0
|
||||
* @since 0.1.0
|
||||
*/
|
||||
|
||||
namespace OgreIssuu;
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
trait Singleton {
|
||||
|
||||
private static $instances = [];
|
||||
private static $instance_classes = [];
|
||||
final public static function instance() {
|
||||
$class = get_called_class();
|
||||
if (in_array($class, self::$instance_classes)) return self::$instances[array_search($class, self::$instance_classes)];
|
||||
|
||||
self::$instances[] = new $class();
|
||||
self::$instance_classes[] = $class;
|
||||
|
||||
return self::$instances[count(self::$instances) - 1];
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user