PluginProbe ʕ •ᴥ•ʔ
CommerceBird – AI Command Center, ERP Integrations & B2B for WooCommerce (Zoho, Exact Online). / trunk
CommerceBird – AI Command Center, ERP Integrations & B2B for WooCommerce (Zoho, Exact Online). vtrunk
3.0.3 3.0.2 3.0.1 trunk 2.2.14 2.2.15 2.2.16 2.2.17 2.2.18 2.2.19 2.3.0 2.3.1 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.7.91 2.7.92 2.7.93 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.9.0 2.9.1 2.9.2 2.9.3 3.0.0
commercebird / admin / includes / Traits / Singleton.php
commercebird / admin / includes / Traits Last commit date
AjaxRequest.php 3 weeks ago LogWriter.php 7 months ago OptionStatus.php 10 months ago Singleton.php 1 year ago index.php 1 year ago
Singleton.php
58 lines
1 <?php
2
3 namespace CommerceBird\Admin\Traits;
4
5 use Exception;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit;
9 }
10
11 trait Singleton {
12 /**
13 * The single instance of the class.
14 *
15 * @var object
16 */
17 protected static ?self $instance = null;
18
19 /**
20 * Constructor
21 *
22 * @return void
23 */
24 protected function __construct() {
25 }
26
27 /**
28 * Get class instance.
29 *
30 * @return object Instance.
31 */
32 final public static function instance(): self {
33 if ( null === static::$instance ) {
34 static::$instance = new static();
35 }
36
37 return static::$instance;
38 }
39
40 /**
41 * Prevent unserializing.
42 *
43 * @throws Exception
44 */
45 final public function __wakeup() {
46 throw new Exception( 'Serializing instances of this class is forbidden' );
47 }
48
49 /**
50 * Prevent cloning.
51 *
52 * @throws Exception
53 */
54 private function __clone() {
55 throw new Exception( 'Serializing instances of this class is forbidden' );
56 }
57 }
58