original_string: public static function getInstance(array $settings = []): DIInterface
      {
          if (! self::$instance) {
              self::$instance = new DI($settings);
          }
          
          return self::$instance;
      }
code: public static function getInstance(array $settings = []): DIInterface
      {
          if (! self::$instance) {
              self::$instance = new DI($settings);
          }
          
          return self::$instance;
      }
code_tokens: public static function getInstance ( array $ settings = [ ] ) : DIInterface { if ( ! self :: $ instance ) { self :: $ instance = new DI ( $ settings ) ; } return self :: $ instance ; }
docstring: Creates and returns singleton instance of DI service
  
  @param array $settings
  Optional settings array which is only needed once on instance creation
  
  @return DIInterface
docstring_tokens: Creates and returns singleton instance of DI service