public static function init(...$arguments) {
		assert(!isset(self::$instance[static::class]), sprintf('Class "%s" already initialized.', get_class()));

		static::__static();
		$parameters = self::determineParameters($arguments);

		return new static(...$parameters);
	}
public static function init(...$arguments) {
		assert(!isset(self::$instance[static::class]), sprintf('Class "%s" already initialized.', get_class()));

		static::__static();
		$parameters = self::determineParameters($arguments);

		return new static(...$parameters);
	}
public static function init ( ... $ arguments ) { assert ( ! isset ( self :: $ instance [ static :: class ] ) , sprintf ( 'Class "%s" already initialized.' , get_class ( ) ) ) ; static :: __static ( ) ; $ parameters = self :: determineParameters ( $ arguments ) ; return new static ( ... $ parameters ) ; }
Used to initialize a Singleton if needed.

@param mixed[] ...$arguments
@return static
@throws CsrOrmException
Used to initialize a Singleton if needed .