PluginProbe
TableKit – WordPress Table Builder for Data Tables, WooCommerce Product Tables & Post Tables / 2.0.0
TableKit – WordPress Table Builder for Data Tables, WooCommerce Product Tables & Post Tables v2.0.0
2.3.0 2.2.14 2.2.13 2.2.12 2.2.11 2.2.10 2.2.9 2.2.8 2.2.7 2.2.6 2.2.5 2.2.4 2.2.3 trunk 1.0.0 1.0.1 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2
table-builder-block / includes / Traits / Singleton.php

Singleton.php in TableKit – WordPress Table Builder for Data Tables, WooCommerce Product Tables & Post Tables 2.0.0, at includes/Traits/Singleton.php

40 lines 1.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace TableBuilder\Traits;
4
5 /**
6 * Trait for making singleton instance
7 * This is a factory singleton
8 *
9 * @package Gutenkit\Traits
10 */
11 trait Singleton {
12 /**
13 * The Singleton's instance is stored in a static field. This field is an
14 * array, because we'll allow our Singleton to have subclasses. Each item in
15 * this array will be an instance of a specific Singleton's subclass. You'll
16 * see how this works in a moment.
17 */
18 private static $instances = array();
19
20 /**
21 * This is the static method that controls the access to the singleton
22 * instance. On the first run, it creates a singleton object and places it
23 * into the static field. On subsequent runs, it returns the client existing
24 * object stored in the static field.
25 *
26 * This implementation lets you subclass the Singleton class while keeping
27 * just one instance of each subclass around.
28 *
29 * @return object
30 * @since 1.0.0
31 */
32 public static function instance() {
33 $class = get_called_class();
34 if ( ! isset( self::$instances[$class] ) ) {
35 self::$instances[$class] = new $class();
36 }
37 return self::$instances[$class];
38 }
39 }
40