Skip to content
Snippets Groups Projects
class-external-permalinks-redux-singleton.php 631 B
Newer Older
Erick Hitter's avatar
Erick Hitter committed
 * Singleton base class.
 *
 * @package External_Permalinks_Redux
 */

Erick Hitter's avatar
Erick Hitter committed
abstract class External_Permalinks_Redux_Singleton {
	/**
	 * Singleton!
	 *
	 * @var self
	 */
	protected static $instance;

	/**
	 * Instantiate class as a singleton.
	 *
	 * @return object
	 */
	public static function get_instance() {
Erick Hitter's avatar
Erick Hitter committed
		if ( ! isset( static::$instance ) ) {
			static::$instance = new static();
			static::$instance->_setup();
Erick Hitter's avatar
Erick Hitter committed
		return static::$instance;
	}

	/**
	 * Unused constructor.
	 */
	final private function __construct() {}

	/**
	 * Set up class.
	 *
	 * @return void
	 */
	abstract protected function _setup();
}