public static function getInstance(array $settings = []): DIInterface
    {
        if (! self::$instance) {
            self::$instance = new DI($settings);
        }
        
        return self::$instance;
    }
public static function getInstance(array $settings = []): DIInterface
    {
        if (! self::$instance) {
            self::$instance = new DI($settings);
        }
        
        return self::$instance;
    }
public static function getInstance ( array $ settings = [ ] ) : DIInterface { if ( ! self :: $ instance ) { self :: $ instance = new DI ( $ settings ) ; } return self :: $ instance ; }
Creates and returns singleton instance of DI service

@param array $settings
Optional settings array which is only needed once on instance creation

@return DIInterface
Creates and returns singleton instance of DI service