Files
ogre-schema/includes/trait-singleton.php
dcooperdalrymple 544cc6aa9a Initial build.
2024-06-06 13:07:22 -05:00

28 lines
618 B
PHP

<?php
/**
* @package CleverOgre
* @subpackage OgreSchema
* @version 0.1.0
* @since 0.1.0
*/
namespace OgreSchema;
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];
}
}