# notificationx/3.3.2/vendor/priyomukul/wp-notice/src/Utils/Base.php

NotificationX – FOMO, Live Sales Notification, WooCommerce Sales Popup, GDPR, Social Proof, Announcement Banner &amp; Floating Notification Bar, version 3.3.2. 45 lines.

- Page: https://pluginprobe.com/plugins/notificationx/3.3.2/code/vendor/priyomukul/wp-notice/src/Utils/Base.php
- Raw: https://pluginprobe.com/plugins/notificationx/3.3.2/raw/vendor/priyomukul/wp-notice/src/Utils/Base.php
- Modified: 2023-11-20T11:53:16+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/notificationx/3.3.2/code/vendor/priyomukul/wp-notice/src/Utils/Base.php#L10-L20`.

```php
<?php

namespace PriyoMukul\WPNotice\Utils;

#[\AllowDynamicProperties]
abstract class Base {
	/**
	 * Holds the plugin instance.
	 *
	 * @since 2.0.0
	 * @access protected
	 * @static
	 *
	 * @var Base
	 */
	private static $instances = [];

	/**
	 * Sets up a single instance of the plugin.
	 *
	 * @return static An instance of the class.
	 * @since 1.0.0
	 * @access public
	 * @static
	 *
	 */
	public static function get_instance( ...$args ) {
		$module    = get_called_class();
		$module_id = $module;

		if ( $module === 'PriyoMukul\WPNotice\Notice' || $module === 'PriyoMukul\WPNotice\Dismiss' ) {
			$module_id = $module . '::' . $args[0];
		}

		if ( ! isset( self::$instances[ $module_id ] ) ) {
			self::$instances[ $module_id ] = new $module( ...$args );
		}

		return self::$instances[ $module_id ];
	}

	protected function database( $args = null ) {
		return new Storage( $args );
	}
}
```
