original_string: public static function get($class)
      {
          $key = strtolower($class);
  
          if (isset(static::$instances[$key])) {
              return static::$instances[$key];
          }
  
          static::override($class);
  
          if (!class_exists($class)) {
              throw new ReflectionException("Class $class does not exist");
          }
  
          $instance = static::getInstance($class);
          static::register($class, $instance);
          return $instance;
      }
code: public static function get($class)
      {
          $key = strtolower($class);
  
          if (isset(static::$instances[$key])) {
              return static::$instances[$key];
          }
  
          static::override($class);
  
          if (!class_exists($class)) {
              throw new ReflectionException("Class $class does not exist");
          }
  
          $instance = static::getInstance($class);
          static::register($class, $instance);
          return $instance;
      }
code_tokens: public static function get ( $ class ) { $ key = strtolower ( $ class ) ; if ( isset ( static :: $ instances [ $ key ] ) ) { return static :: $ instances [ $ key ] ; } static :: override ( $ class ) ; if ( ! class_exists ( $ class ) ) { throw new ReflectionException ( "Class $class does not exist" ) ; } $ instance = static :: getInstance ( $ class ) ; static :: register ( $ class , $ instance ) ; return $ instance ; }
docstring: Instantiates and registers a class
  @param string $class
  @return object
  @throws ReflectionException
docstring_tokens: Instantiates and registers a class