PluginProbe ʕ •ᴥ•ʔ
AlphaListing / 4.4.0
AlphaListing v4.4.0
trunk 4.3.4 4.3.5 4.3.6 4.3.7 4.4.0
alphalisting / src / Singleton.php
alphalisting / src Last commit date
Shortcode 1 month ago Alphabet.php 1 month ago Extension.php 1 month ago Grouping.php 1 month ago GutenBlock.php 1 month ago Indices.php 1 month ago Numbers.php 1 month ago Query.php 1 month ago Shortcode.php 1 month ago Singleton.php 1 month ago Strings.php 1 month ago
Singleton.php
64 lines
1 <?php
2 /**
3 * AlphaListing singleton
4 *
5 * @package alphalisting
6 */
7
8 declare(strict_types=1);
9
10 namespace eslin87\AlphaListing;
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit;
14 }
15
16 /**
17 * AlphaListing_Singleton
18 */
19 abstract class Singleton implements Extension {
20 /**
21 * Instances
22 *
23 * @since 4.0.0
24 * @var array<string,Extension>
25 */
26 private static $instances = array();
27
28 /**
29 * Singleton
30 *
31 * @since 4.0.0
32 * @see Extension::instance
33 * @suppress PhanPluginUnknownArrayMethodParamType
34 */
35 final public static function instance(): Extension {
36 $class = get_called_class();
37 if ( ! isset( self::$instances[ $class ] ) ) {
38 self::$instances[ $class ] = new $class();
39 }
40 return self::$instances[ $class ];
41 }
42
43 // phpcs:ignore Squiz.Commenting.FunctionComment.MissingParamTag
44 /**
45 * Activate
46 *
47 * @since 4.0.0
48 * @see Extension::activate
49 * @suppress PhanPluginUnknownArrayMethodParamType,PhanPluginUnknownArrayMethodParamType
50 */
51 public function activate( string $file = '', array $plugin = array() ): Extension {
52 return $this;
53 }
54
55 /**
56 * Initialize
57 *
58 * @since 4.0.0
59 * @see Extension::initialize
60 * @suppress PhanPluginUnknownArrayMethodParamType
61 */
62 abstract public function initialize();
63 }
64