class_options = $const_args; } /** * Get class instance. * * @param array $constructor_args constructor args. * @param string|null $class_name class name to create instance. * * @return object object instance */ public static function get_instance( $constructor_args = array(), $class_name = null ) { if ( is_null( static::$instance ) ) { static::create_instance( $constructor_args, $class_name ); } return static::$instance; } /** * Force create instance of singleton if it there is none. * * @param array $constructor_args constructor args. * @param string|null $class_name class name to create instance. * * @return void */ final protected static function create_instance( $constructor_args = array(), $class_name = null ) { if ( is_null( static::$instance ) ) { $class_name = __CLASS__; if ( ! is_null( $class_name ) ) { $class_name = class_exists( $class_name ) ? $class_name : __CLASS__; } static::$instance = new $class_name( $constructor_args ); } } }